将ScientificPython作为依赖安装
我正在尝试在我的 setup.py
文件中把 ScientificPython 列为一个依赖项。但是,在安装过程中,Python似乎找不到这个包。我的做法有什么问题呢?
这是我的设置:
import setuptools
setuptools.setup(name = 'MyPack', version = '0.1',
description= 'Description.',
author = 'Me',
packages = setuptools.find_packages(),
install_requires = ['ScientificPython'],
dependency_links = ["https://sourcesup.cru.fr/frs/?group_id=180&release_id=1351#stable-releases-2-8-title-content"])
这是我运行 python setup.py install
时输出的重要部分:
Processing dependencies for MyPack==0.1
Searching for ScientificPython
Reading https://sourcesup.cru.fr/frs/?group_id=180&release_id=1351#stable-releases-2-8-title-content
Download error: unknown url type: https -- Some packages may not be found!
Reading http://pypi.python.org/simple/ScientificPython/
Reading http://dirac.cnrs-orleans.fr/ScientificPython/
Reading http://starship.python.net/~hinsen/ScientificPython/
No local packages or download links found for ScientificPython
Best match: None
Traceback (most recent call last):
File "setup.py", line 22, in <module>
dependency_links = ["https://sourcesup.cru.fr/frs/?group_id=180&release_id=1351#stable-releases-2-8-title-content"])
File "/home/woltan/local/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/home/woltan/local/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/home/woltan/local/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/install.py", line 76, in run
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/install.py", line 104, in do_egg_install
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 211, in run
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 427, in easy_install
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 478, in install_item
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 519, in process_distribution
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 563, in resolve
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 799, in best_match
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 811, in obtain
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 434, in easy_install
File "/home/woltan/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/package_index.py", line 475, in fetch_distribution
AttributeError: 'NoneType' object has no attribute 'clone'
可能有一个问题是,ScientificPython 似乎在 PyPI 上无法访问,或者至少无法下载,因为用 easy_install ScentificPython
命令会失败,并显示 No local packages or download links found for ScentificPython
的错误信息。
我需要做些什么才能通过 setuptools 安装 ScientificPython 呢?
4 个回答
我在用 easy_install
安装 MyProxyClient 的时候,遇到了类似的错误:
“下载错误:未知的 URL 类型:https -- 有些包可能找不到!”
还有其他关于找不到 openssl 头文件的错误。
所以在 Ubuntu 上安装 libssl-dev
解决了我的问题!
你有没有试过把直接下载链接(https://sourcesup.cru.fr/frs/download.php/2309/ScientificPython-2.8.tar.gz
)放到 dependency_links
里,而不是放在网页上?因为你的脚本似乎找不到这个包,然后就试着安装 None
。
补充:我刚注意到,Python 似乎无法打开 https 的资源——试试把它上传到一个没有 https 的地方,使用普通的 http。
再补充一下:你为什么不把整个 ScientificPython 文件夹放到你的分发文件夹里,确保它的 setup.py(或者你需要调用的其他文件)能被你的 setup.py 调用呢?
这个问题主要是因为它试图用http连接一个https的网站。根据我的了解,setuptools不支持与https的连接。所以你需要用其他方法来获取那些软件包。
我的建议是,如果你想使用setuptools,可以在文件的README中说明用户需要先下载并安装那个依赖包,然后在setuptools中设置,如果没有这个依赖包就会安装失败。