Pio*_*dyl 7 python git pip setup.py
我正在尝试运行:
pip3 install -e .
在我的Python项目中,我有以下内容setup.py:
from setuptools import setup
setup(
name='mypackage',
install_requires=[
"anotherpackage@git+git@bitbucket.org:myorg/anotherpackage.git"
]
)
Run Code Online (Sandbox Code Playgroud)
但是它失败了:
error in mypackage setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid URL given
Run Code Online (Sandbox Code Playgroud)
我猜想我的URL格式是正确的,因为PEP 508不允许为ssh克隆URL指定git用户名。
带有git + ssh协议的PEP 508 URL与install_requires私有git存储库(在本例中为BitBucket托管)相关的正确语法是什么?指定特定分支,标记或sha的语法是什么?
我有一个内部Python项目,该项目依赖于多个内部开发的Python包。我想避免在组织中托管自己的PIP存储库的必要,因此,我尝试直接使用git URL。我需要对git URL使用ssh协议,因为所有用户都已配置了他们的ssh密钥,要求所有用户在BitBuckets中配置其应用密码会很麻烦(我需要2FA,并且常规用户密码无效) 。
我已经尝试使用:
dependency_linkssetup(
name='mypackage',
install_requires=[
"anotherpackage==0.0.1"
],
dependency_links=[
"git+git@bitbucket.org:myorg/anotherpackage.git@0.0.1#egg=anotherpackage-0.0.1"
]
)
Run Code Online (Sandbox Code Playgroud)
但是它们已被弃用,并且被忽略pip3 install -e .。根据我发现的文档,应该改用PEP 508 URL。
requirements.txt与项文件从重复的install_requires条目我有一个requirements.txt文件:
-e git+git@bitbucket.org:myorg/anotherpackage.git@0.0.1#egg=anotherpackage
Run Code Online (Sandbox Code Playgroud)
我用pip3 install -r requirements.txt代替pip3 install -e .。它可以工作,但由于我必须保持两者setyp.py并保持requirements.txt同步而不理想。
如果对于我的问题还有其他推荐的解决方案,我想了解一下:)
在检查了pip源代码之后,我发现了专用BitBucket存储库的正确语法。
带有URL的软件包的一般形式是<package name>@<URI>并且URI必须以开头<scheme>://。
所以我将其固定为:
anotherpackage@git+ssh://git@bitbucket.org:myorg/anotherpackage.git
然后我遇到了另一个错误-这次git命令(由调用pip)抱怨存储库URL ssh://git@bitbucket.org:myorg/anotherpackage.git。
我检查了git文档的ssh://URL格式,发现主机名和组织部分必须用/而不是分开::
ssh://git@bitbucket.org/myorg/anotherpackage.git
此URL可以正常工作。我还从pip源代码中学到,可以通过附加来指定实际的修订/分支/标签,@<rev-spec>因此我可以0.0.1在以下示例中指定标签install_requires:
anotherpackage@git+ssh://git@bitbucket.org:myorg/anotherpackage.git@0.0.1
我唯一仍然遇到的问题是,当我更改修订版本并pip3 install -e .再次运行时,它不会检测到更改(即使使用来运行--upgrade)。我必须手动卸载软件包(pip3 uninstall anotherpackage),然后pip3 install -e .再次运行。
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |