将ScientificPython作为依赖安装

8 投票
4 回答
2437 浏览
提问于 2025-04-16 22:26

我正在尝试在我的 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 个回答

1

我在用 easy_install 安装 MyProxyClient 的时候,遇到了类似的错误:

“下载错误:未知的 URL 类型:https -- 有些包可能找不到!”

还有其他关于找不到 openssl 头文件的错误。

所以在 Ubuntu 上安装 libssl-dev 解决了我的问题!

3

你有没有试过把直接下载链接(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 调用呢?

2

这个问题主要是因为它试图用http连接一个https的网站。根据我的了解,setuptools不支持与https的连接。所以你需要用其他方法来获取那些软件包。

我的建议是,如果你想使用setuptools,可以在文件的README中说明用户需要先下载并安装那个依赖包,然后在setuptools中设置,如果没有这个依赖包就会安装失败。

撰写回答