Installing old versions of dependencies within a python virtualenv and receiving ERROR: No matching distribution found for tiledtmxloader==3.1.0

Installing old versions of dependencies within a python virtualenv and receiving ERROR: No matching distribution found for tiledtmxloader==3.1.0

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

里面的依赖项列为

      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 更有意义。不知道更新后会不会喜欢


我想知道如何下载这些包,这样我就可以 运行 项目,而无需进行任何编辑

默认情况下 pipPython Pakckage Index so when you run pip install tiledtmxloader it goes to https://pypi.org/project/tiledtmxloader/#history (well, actually it goes to Simple API) 下载软件包,寻找与您的平台对应的版本(处理器架构,32 位与 64 位,Python 版本)。目前 tiledtmxloader 只提供了一个版本 3.1.0.131,它只适用于 Python 3 所以它肯定不是你想要的。

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-specifiers and https://www.python.org/dev/peps/pep-0440/#direct-references

我得到了这个工作,我不得不将 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.11.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 中完成这一切,这个 .

除了我必须使用 pygame 1.9.3 而不是 1.9.1 之外,一切正常