Python库-使它们在不属于我的PC上运行

时间:2018-11-14 10:13:03

标签: python

很抱歉,这是一个非常愚蠢的问题,但是我是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

2 个答案:

答案 0 :(得分:1)

分发代码是一章很长的一章,您可以根据当前的最佳实践而花费大量时间来使事情变得正确。我认为对您的问题的解决方案有不同程度的 right ,更多的权利意味着更多的工作。因此,您必须选择自己喜欢的程度,并且选择适合的职业。


最佳路线

Python支持packaging,分发代码的最安全方法是打包代码。这样,您就可以通过安装代码来自动安装所有依赖项的方式来指定要求。

您可以使用现有的cookiecutter(它们是项目模板)来创建构建程序包所需的基础:

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文件,可以将其发送给您的讲师。当他们使用pip安装它时,openpyxl将自动安装(如果尚未安装)。

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

my_script / 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 approach。但是请注意,在软件工程界中,即使没有向用户交互提示而静默安装需求也是一个巨大的禁忌。如果您打算从事编程工作,那么应该从好的实践开始,而不要早于晚。

答案 1 :(得分:-1)

您可以首先使用library确保是否安装了相应的try | except,如下所示:

try:
    import numpy
except ImportError:
    print('Numpy is not installed, install now to continue')
    exit()

现在,如果在计算机上安装了numpy,则系统将仅import numpy并继续运行,但是如果未安装Numpy,则系统将{{1 }} python记录所需的信息,即exit

并对所使用的每个库实施完全相同的操作。

但是,如果您要直接安装未安装的库,则可以使用以下方法:

注意:不建议您以静默方式安装库。

x is not installed

在这里,如果已经安装了import os try: import numpy except ImportError: print('Numpy is not installed, installing now......') resultCode = os.system('pip install numpy') if resultCode == 0: print('Numpy installed!') import numpy else: print('Error occured while installing numpy') exit() ,则系统将在安装后继续运行,但是如果尚未安装,则系统将首先安装并继续numpy