在python virtualenv中安装旧版本的依赖项并收到错误:未找到tiledtmxloader==3.1.0的匹配发行版

2024-09-29 17:44:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在试着运行一个old github project。它在python2.7上运行,所以我为它创建了一个virtualenv,它使用pip==20.3.4,我正在尝试安装所有东西并在source ./venv/bin/activate内运行它

其中的依赖项列为

      install_requires = ['Django == 1.5.1',
                          'pyglet >= 1.1.4',
                          'tiledtmxloader >= 3.0.3',
                          'pygame>=1.9.1',
                         ],

但是,由于这些包的最新版本不支持python2.7或项目,因此我将这些依赖项改为==,而不是>=

      'Django == 1.5.1',
      'pyglet == 1.1.4',
      'tiledtmxloader == 3.0.3',
      'pygame==1.9.1',

我能够安装pyglet的旧版本,但对于其他软件包,我收到了如下错误

ERROR: Could not find a version that satisfies the requirement tiledtmxloader==3.1.0 (from versions: 3.1.0.131)
ERROR: No matching distribution found for tiledtmxloader==3.1.0

RROR: Could not find a version that satisfies the requirement pygame==1.9.1 (from versions: 1.9.2b5, 1.9.2b6, 1.9.2rc1, 1.9.2, 1.9.3, 1.9.4.dev0, 1.9.4rc1, 1.9.4, 1.9.5.dev0, 1.9.5rc1, 1.9.5rc2, 1.9.5, 1.9.6rc1, 1.9.6rc2, 1.9.6, 2.0.0.dev1, 2.0.0.dev2, 2.0.0.dev3, 2.0.0.dev4, 2.0.0.dev6, 2.0.0.dev8, 2.0.0.dev10, 2.0.0.dev12, 2.0.0.dev14, 2.0.0.dev16, 2.0.0.dev18, 2.0.0.dev20, 2.0.0.dev22, 2.0.0.dev24, 2.0.0, 2.0.1.dev1, 2.0.1)
ERROR: No matching distribution found for pygame==1.9.1

这些软件包的旧版本可以下载吗?我所要做的就是执行这个程序,所以下载旧的包并按原样运行这个程序比尝试将它转换成python3更有意义。我甚至不知道更新后是否会喜欢这个程序


我想知道如何下载这些软件包,这样我就可以按原样运行项目,而不必做任何编辑


Tags: the项目django程序thatversionnoterror
2条回答

我让它工作了,我不得不把install_requires改成==,而不是>=

install_requires = [
    'Django == 1.5.1',
    'pyglet == 1.1.4',
    'tiledtmxloader == 3.0.3.114',
    'pygame==1.9.3',
],
      

pygame和tiledtmxloader无法从pip下载,因此我必须从源代码下载pygametiledtmxloader。我使用了python==1.9.3而不是1.9.1,但是1.9.1有一些问题

pip install https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pytmxloader/tiledtmxloader-3.0.3.114.zip
pip install https://pypi.python.org/packages/61/06/3c25051549c252cc6fde01c8aeae90b96831370884504fe428a623316def/pygame-1.9.3.tar.gz#md5=ac744ea6952b68d5f2b6d02a6d8e836c

我必须在python2 virtualenv中完成这一切,这是在本Stack Overflow question中讨论的

除了我必须使用PyGame1.9.3而不是1.9.1这一事实之外,一切都正常

默认情况下pipPython Pakckage Index下载包,因此当运行pip install tiledtmxloader时,它会转到https://pypi.org/project/tiledtmxloader/#history(实际上,它转到Simple API),寻找与您的平台相对应的版本(处理器体系结构,32位vs 64位,Python版本)。目前tiledtmxloader只提供了一个仅适用于Python 3的版本3.1.0.131,因此它肯定不是您想要的

PyPI上有主页和下载链接,可以链接到Google代码存档。在download页上有一些旧版本。我尝试了最新版本3.1.0.115,它与Python 2.7兼容。所以试试这个:

pip install https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pytmxloader/tiledtmxloader-3.1.0.115.zip

更改setup.py

  install_requires = ['Django == 1.5.1',
                      'pyglet >= 1.1.4',
                      'tiledtmxloader @ https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pytmxloader/tiledtmxloader-3.1.0.115.zip',
                      'pygame>=1.9.1',
                     ],

这是直接引用,请参见https://pip.pypa.io/en/stable/cli/pip_install/#requirement-specifiershttps://www.python.org/dev/peps/pep-0440/#direct-references

相关问题 更多 >

    热门问题