Python3:是否在setup.py中安装基于github的模块?
使用Python3:是否在setup.py中安装基于github的模块?,python,python-3.x,pip,setuptools,Python,Python 3.x,Pip,Setuptools,使用pip安装,我可以编写以下requirements.txt文件: git+https://repo@branch#egg=foo&subdirectory=this/bar/foo numpy 并成功安装需求文件: python3 -m pip install -r requirements.tx 但是,我在目录中找到了一个setup.py脚本,其中列出了: setuptools.setup( ... install_requires = get_lines('requi
pip
安装,我可以编写以下requirements.txt
文件:
git+https://repo@branch#egg=foo&subdirectory=this/bar/foo
numpy
并成功安装需求文件:
python3 -m pip install -r requirements.tx
但是,我在目录中找到了一个setup.py
脚本,其中列出了:
setuptools.setup(
...
install_requires = get_lines('requirements.txt'),
...
)
使用pip
安装此子模块涉及pip
运行setup.py
…无法处理模块链接:
git+https://github.com/repo@branch#egg=foo&subdirectory=this/bar/foo
我可以看到很多解决方法,但似乎应该有一种不含糊的方法来做到这一点,即在
setup.py
脚本中尽可能少地更改
有这样的方法吗?您可能需要将
requirements.txt
中的行更改为类似以下内容:
foo @ git+https://repo@branch#egg=foo&subdirectory=this/bar/foo
参考资料:
requirements.txt
文件、pip Direct和setuptools中接受的符号之间可能存在细微差异。特别是,我不知道像egg
和子目录
这样的东西支持得有多好
忠告:
- 从现在起,避免调用
或python setup.py install
,并确保调用python setup.py develope
或python-m pip install.
python-m pip install--editable.
我确实认为阅读<代码>要求。txt <代码>从代码< >安装程序> Py <代码>作为红旗(或至少黄色)。
install\u的内容需要setuptools的
,而requirements.txt
通常有不同的用途
所以我可能需要添加信息:我正在使用
python3-m pip install foo安装。我确实喜欢可编辑的标志,但我不在这里使用它。此外,设置和要求在某些时候可能出于不同的目的。但是我已经精简了需求文件,以便它完全包含有效安装所需的内容。另外,如果我可以完全放弃设置模式,我会这样做——我对它没有既定的、习惯性的或习惯性的兴趣。换句话说,在这个特定的用例中,setup.py
与其说是一个特性,不如说是一种仪式。Pip需要进来,安装需求,并安装目录中的所有python文件。@Chris,那么您是否尝试了foo@…
符号?--如果我建议调用pip
而不是setup.py
,那是因为setuptools不理解这个foo@
符号,或者至少上次我没有检查它。这很好,setuptools并不需要真正理解这种表示法,它只是逐字地将行写入分发元数据中对于install\u requires
与requirements.txt
,公平地说,这只是一个警告,它可能是一些更深层次误解的症状,但你似乎知道你在这方面做了什么,所以一切都很好。一切都成功了!我也明白了,太好了!我很高兴它起作用了。