我刚刚开始使用setuptools和virtualenv.我的包需要最新的python-gearman,只能从GitHub获得.PyPI上的python-gearman版本是旧版本.Github源代码是setuptools兼容的,即有setup.py等.有没有办法让setuptools下载并安装新版本,而不是在PyPI上查找并安装旧版本?
仅供参考,新的python-gearman是http://github.com/mtai/python-gearman
我正在使用python version 2.7和pip 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_requires中setup.py.假设,我想从github安装一个库.我已经搜索关于这个问题,我发现一些东西,我可以把库,使得dependency_links中setup.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) 有相当多的人不知道在替代相关性的联系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_links和install_requires列表中.我想听到这种弃用有利于改进,但似乎并非如此
那么,总结一下,弃用依赖关系链接的原因是什么?依赖链接的弃用是否有利于更好的替代方案?似乎没有其他选择
我正在尝试运行:
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条目 …