Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3:是否在setup.py中安装基于github的模块?_Python_Python 3.x_Pip_Setuptools - Fatal编程技术网

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
,公平地说,这只是一个警告,它可能是一些更深层次误解的症状,但你似乎知道你在这方面做了什么,所以一切都很好。一切都成功了!我也明白了,太好了!我很高兴它起作用了。