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