我有一个第三方软件包,它有一个setup.py
文件,它以标准方式调用setup()
,传递test_requires
,install_requires
和extras_require
。(它不使用requirements.txt
文件。
我正在运行一台Windows机器(在Appveyor上),pip install
在某些软件包的Windows上是出了名的差。我想使用康达。
在我看来,理想的方法是:
- 要求 setup.py 列出它所需的依赖项,而不执行任何操作。
- 将该列表传递给 conda 进行安装。
- 使用
install
或test
命令调用 setup.py,确信它将检查其要求,并且找不到需要安装的任何内容。
我认为python setup.py --requires
可能会做到这一点,但它的记录很差,并且没有返回任何内容。
如果这是一个合理的方法?如果是这样,有没有办法要求 setup.py 评估其依赖项,并在不安装它们的情况下列出它们。
python setup.py egg_info
将编写一个包含所需依赖项的package_name.egg-info/requires.txt
文件。
你可以让distutils
读取setup.py
并返回依赖项。 命令distutils.core.run_setup
允许您在受控环境中运行setup.py
:
import distutils.core
setup = distutils.core.run_setup("setup.py")
print(setup.install_requires)
Python 变量setup
有一组属性,可以让你戳setup.py