如何在 python 项目中包含库依赖项?
How to include library dependencies with a python project?
我正在开发一个其他一些人将要使用的程序,它是在 Python 中制作的。它们都安装了 python,但是,该程序从几个库中导入。
理想情况下,我希望能够简单地向他们发送 Python 文件,他们可以 运行 它,而不必告诉他们必须安装的每个库并让他们使用 pip 手动获取每一个。
有什么方法可以将我的项目使用的所有库包含在我的 Python 文件中(或者可能设置一个安装程序来为它们安装它)?还是我只需要给他们一份他们必须安装的 python 库的完整列表,然后让他们手动安装每个库?
您应该使用virtualenv
来管理项目的包。如果这样做,则可以 pip freeze > requirements.txt
保存项目的所有依赖项。在此之后 requirements.txt
将包含 运行 您的应用程序的所有必要要求。将此文件添加到您的存储库。来自 requirements.txt
的所有包都可以用
安装
pip install -r requirements.txt
另一个选项是创建 PyPI 包。您可以找到有关此主题的教程 here
这是 Python packaging tutorial 的主题。
简而言之,you pass them as install_requires
parameter 到 setuptools.setup()
。
然后您可以生成多种格式的包,包括 wheel、egg,甚至 Windows 安装程序包。
使用标准打包基础设施还可以让您轻松进行版本管理。
您可以构建一个包并在 setup.py 中指定依赖项。这才是正确的做法
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)
现在需要它 hack 选项是一些让您的脚本与 shell 交互的库。 pexpect 是我最喜欢的自动化 shell 交互。
我正在开发一个其他一些人将要使用的程序,它是在 Python 中制作的。它们都安装了 python,但是,该程序从几个库中导入。
理想情况下,我希望能够简单地向他们发送 Python 文件,他们可以 运行 它,而不必告诉他们必须安装的每个库并让他们使用 pip 手动获取每一个。
有什么方法可以将我的项目使用的所有库包含在我的 Python 文件中(或者可能设置一个安装程序来为它们安装它)?还是我只需要给他们一份他们必须安装的 python 库的完整列表,然后让他们手动安装每个库?
您应该使用virtualenv
来管理项目的包。如果这样做,则可以 pip freeze > requirements.txt
保存项目的所有依赖项。在此之后 requirements.txt
将包含 运行 您的应用程序的所有必要要求。将此文件添加到您的存储库。来自 requirements.txt
的所有包都可以用
pip install -r requirements.txt
另一个选项是创建 PyPI 包。您可以找到有关此主题的教程 here
这是 Python packaging tutorial 的主题。
简而言之,you pass them as install_requires
parameter 到 setuptools.setup()
。
然后您可以生成多种格式的包,包括 wheel、egg,甚至 Windows 安装程序包。
使用标准打包基础设施还可以让您轻松进行版本管理。
您可以构建一个包并在 setup.py 中指定依赖项。这才是正确的做法
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)
现在需要它 hack 选项是一些让您的脚本与 shell 交互的库。 pexpect 是我最喜欢的自动化 shell 交互。