adi*_*anp 18 python setuptools install-requires
我想知道是否和.deb包一样,在我的setup.py中可以配置我的包的依赖项,然后运行:
$ sudo python setup.py install
Run Code Online (Sandbox Code Playgroud)
它们是自动安装的.已经研究过互联网,但我发现只是让我困惑,像"需要","install_requires"和"requirements.txt"之类的东西
hay*_*ayj 19
只需requirements.txt在您的 lib 文件夹中创建并添加所有依赖项,如下所示:
gunicorn
docutils>=0.3
lxml==0.5a7
Run Code Online (Sandbox Code Playgroud)
然后创建一个setup.py脚本并读requirements.txt入:
import os
thelibFolder = os.path.dirname(os.path.realpath(__file__))
requirementPath = thelibFolder + '/requirements.txt'
install_requires = [] # Here we'll get: ["gunicorn", "docutils>=0.3", "lxml==0.5a7"]
if os.path.isfile(requirementPath):
with open(requirementPath) as f:
install_requires = f.read().splitlines()
setup(name="yourpackage", install_requires=install_requires, [...])
Run Code Online (Sandbox Code Playgroud)
的执行python setup.py install将安装您的包和所有依赖项。就像@jwodder 说创建requirements.txt文件不是强制性的,你可以install_requires直接在setup.py脚本中设置。但写入requirements.txt文件是最佳实践。
在设置功能也必须设置version,packages,author等,读取一个完整的例子DOC:https://docs.python.org/3/distutils/setupscript.html
您的包目录将如下所示:
??? mypackage
? ??? mypackage
? ? ??? __init__.py
? ? ??? mymodule.py
? ??? requirements.txt
? ??? setup.py
Run Code Online (Sandbox Code Playgroud)
小智 6
您从 生成 Egg 信息setup.py,然后使用requirements.txt这些 Egg 信息中的 :
$ python setup.py egg_info
$ pip install -r <your_package_name>.egg-info/requires.txt
Run Code Online (Sandbox Code Playgroud)
另一种可能的解决方案
try:
# for pip >= 10
from pip._internal.req import parse_requirements
except ImportError:
# for pip <= 9.0.3
from pip.req import parse_requirements
def load_requirements(fname):
reqs = parse_requirements(fname, session="test")
return [str(ir.req) for ir in reqs]
setup(name="yourpackage", install_requires=load_requirements("requirements.txt"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10371 次 |
| 最近记录: |