相关疑难解决方法(0)

如何让setuptools安装一个不在PyPI上的软件包?

我刚刚开始使用setuptools和virtualenv.我的包需要最新的python-gearman,只能从GitHub获得.PyPI上的python-gearman版本是旧版本.Github源代码是setuptools兼容的,即有setup.py等.有没有办法让setuptools下载并安装新版本,而不是在PyPI上查找并安装旧版本?

仅供参考,新的python-gearman是http://github.com/mtai/python-gearman

python distutils setuptools pypi

137
推荐指数
4
解决办法
7万
查看次数

pip安装依赖链接

我正在使用python version 2.7pip version is 1.5.6.

我想从url安装额外的库,就像正在安装setup.py上的git repo一样.

我在install_requires参数中加入了额外内容setup.py.这意味着,我的库需要额外的库,并且还必须安装它们.

...
install_requires=[
    "Django",
    ....
],
...
Run Code Online (Sandbox Code Playgroud)

但是,像git的回购协议的URL不是有效的字符串install_requiressetup.py.假设,我想从github安装一个库.我已经搜索关于这个问题,我发现一些东西,我可以把库,使得dependency_linkssetup.py.但那仍然行不通.这是我的依赖链接定义;

dependency_links=[
    "https://github.com/.../tarball/master/#egg=1.0.0",
    "https://github.com/.../tarball/master#egg=0.9.3",
], 
Run Code Online (Sandbox Code Playgroud)

链接有效.我可以使用这些网址从互联网浏览器下载它们.我的设置仍然没有安装这些额外的库.我也尝试过--process-dependency-links参数来强制点子.但结果是一样的.我在翻录时没有错误.

安装后,我看不到pip freeze结果库dependency_links.

如何使用我的setup.py安装下载它们?

编辑:

这是我的完整 setup.py

from setuptools import setup

try:
    long_description = open('README.md').read()
except IOError:
    long_description = ''

setup(
    name='esef-sso',
    version='1.0.0.0',
    description='',
    url='https://github.com/egemsoft/esef-sso.git',
    keywords=["django", "egemsoft", "sso", "esefsso"],
    install_requires=[
        "Django",
        "webservices",
        "requests",
        "esef-auth==1.0.0.0",
        "django-simple-sso==0.9.3"
    ], …
Run Code Online (Sandbox Code Playgroud)

python pip setuptools

12
推荐指数
3
解决办法
2万
查看次数

为什么不推荐使用setup.py中的依赖关系链接?

有相当多的人不知道在替代相关性的联系setup.py(与PIP标志激活--process-dependency-links):什么是替代使用与PIP --process依赖性链接, 取决于setup.py git仓库.基本上,我被弃用警告所困扰:

"DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release."
Run Code Online (Sandbox Code Playgroud)

有些人建议使用requirements.txt,但这不是一种替代方案,因为它旨在提供整个环境,通常与开发更相关.本install_requires应该提供一种最低限度是必要的标准功能的工作,所以,当你做这样的事情库的pip install [LIBRARY],在安装所需的一切,没有任何进一步的pip install -r requirements.txt(我指的情况下,在其中图书馆paramater pip install [LIBRARY]将以URL的形式出现git+http:\\github.com\username\repo.git.

我弃用的问题是我不能引用内部/私有包,但是如果需要在git中引用特定的提交或分支,我也可以看到这可能是一个问题(至少我知道我在过去).

总而言之,dependency_links的使用很复杂,例如语法并不总是很清楚,存在几种指定URL的方法,人们往往会忘记他们必须将库的名称版本放在列表dependency_linksinstall_requires列表中.我想听到这种弃用有利于改进,但似乎并非如此

那么,总结一下,弃用依赖关系链接的原因是什么?依赖链接的弃用是否有利于更好的替代方案?似乎没有其他选择

python pip setuptools setup.py

7
推荐指数
1
解决办法
2082
查看次数

pip3 setup.py install_requires PEP 508 git URL for private repo

我正在尝试运行:

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的语法是什么?

更多上下文以避免XY问题

我有一个内部Python项目,该项目依赖于多个内部开发的Python包。我想避免在组织中托管自己的PIP存储库的必要,因此,我尝试直接使用git URL。我需要对git URL使用ssh协议,因为所有用户都已配置了他们的ssh密钥,要求所有用户在BitBuckets中配置其应用密码会很麻烦(我需要2FA,并且常规用户密码无效) 。

我已经尝试使用:

dependency_links

setup(
    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条目 …

python git pip setup.py

7
推荐指数
1
解决办法
620
查看次数

标签 统计

python ×4

pip ×3

setuptools ×3

setup.py ×2

distutils ×1

git ×1

pypi ×1