首页 > 解决方案 > Python 库 - 让它们在非我的 PC 上工作

问题描述

如果这是一个非常愚蠢的问题,我深表歉意,但我是 python 新手,虽然我做了一些谷歌搜索,但我想不出如何表达我的搜索查询。

我正在编写一个依赖于一些库(pandas、numpy 等)的 python 脚本。在将来的某个时候,我会将这个脚本传递给我的大学,以便他们可以标记它等。我相当有信心讲师会在他们的 PC 上安装 python,但我不能确定他们是否会有相关的库。

我在脚本顶部包含了一个注释部分,概述了每个库的安装说明,但是有没有更好的方法来做到这一点,所以我可以确保脚本不管它们有什么库都可以工作?

我的脚本头示例

############### - Instructions on how to import libraries - ###############

#using pip install openpyxl using the command - pip install openpyxl

#########################################################################

import openpyxl
import random
import datetime

标签: python

解决方案


分发代码是一个巨大的章节,您可以根据当前的最佳实践和其他最佳实践,投入大量时间来把事情做好。我认为你的问题的解决方案有不同程度的正确性,更多的正确性意味着更多的工作。所以你必须选择你觉得舒服并且很适合去的学位。


最佳路线

Python 支持打包,分发代码最安全的方式就是打包。这允许您以安装代码将自动安装所有依赖项的方式指定要求。

您可以使用现有的 cookiecutters(项目模板)来创建构建包所需的基础:

pip install cookiecutter
cookiecutter https://github.com/audreyr/cookiecutter-pypackage

运行此程序并回答随后的问题,将为您留下可以打包的 python 代码。您可以将所需的包添加到setup.py文件中:

requirements = ['openpyxl']

然后在源目录下添加脚本并使用以下命令构建包:

pip wheel .

假设你调用了你的项目my_script,你得到了一个新my_script-0.1.0-py2.py3-none-any.wheel文件,你可以发送给你的讲师。当他们使用 , 安装它时pipopenpyxl将自动安装,以防它尚未安装。

不幸的是,如果他们也应该能够执行您的代码,那么您还没有完成。您需要在打包之前将文件添加到__main__.py文件my_script夹中,在该文件夹中导入并执行可运行的代码部分:

我的脚本/我的脚本/__main__.py:

from . import runnable_script

if __name__ == '__main__':
    runnable_script.run()

然后可以将安装的软件包作为模块运行python -m my_script

下一个最佳路线

如果您真的只有一个文件,并且想与您的讲师交流运行脚本所需的要求,请将您的脚本和一个名为 的文件发送给他们,该文件requirements.txt包含以下几行:

openpyxl

..就是这样。如果还有其他要求,请将它们放在单独的行中。如果讲师花费了任何时间使用 python,他们应该知道运行pip install -r requirements.txt将安装运行您提交的代码所需的要求。

如果你真的不得不去路线

如果您的讲师只知道如何输入python脚本名称,请使用DudeCoders 方法。但是请注意,在软件工程领域中,即使没有向用户提供交互式提示,也可以静默安装需求是一个巨大的禁忌。如果您打算从事编程工作,您应该尽早开始使用良好的实践。


推荐阅读