我正在开发一个用Python编写的程序,将由其他几个人使用。他们都已安装了Python,但有几个库是该程序需要导入的。
我希望能够简单地向他们发送Python文件,让他们可以直接运行程序,而不必告诉他们必须安装哪些库,并要求他们手动使用pip安装每一个库。
是否有任何方式可以将我的项目使用到的所有库与我的Python文件一起打包(或者设置安装程序来为他们安装库)?还是我只能给他们一个完整的Python库列表,并让他们手动安装每一个库?
install_requires
参数传递给setuptools.setup()
。
然后,您可以生成多种格式的软件包,包括wheel、egg甚至Windows安装程序包。http://python-packaging.readthedocs.io/en/latest/dependencies.html
from setuptools import setup
setup(name='funniest',
version='0.1',
description='The funniest joke in the world',
url='http://github.com/storborg/funniest',
author='Flying Circus',
author_email='flyingcircus@example.com',
license='MIT',
packages=['funniest'],
install_requires=[
'markdown',
],
zip_safe=False)
virtualenv
来管理项目的包。如果这样做,你可以使用pip freeze > requirements.txt
将项目的所有依赖项保存下来,requirements.txt
文件中将包含运行你的应用所需的所有必要依赖项。将此文件添加到你的仓库中。可以使用requirements.txt
中的所有软件包进行安装。pip install -r requirements.txt
requirements.txt
用于锁定版本。它不是用来指定依赖关系的,这是 setup.py
的工作。 - wim