在python虚拟机中安装旧版本的依赖项并收到错误:找不到tiledtmxloader==3.1.0的匹配分发



我正在尝试运行一个旧的github项目。它在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更有意义。我甚至不知道更新后我是否会喜欢这个程序。


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

默认情况下,pip从Python包索引下载包,因此当您运行pip install tiledtmxloader时,它会转到https://pypi.org/project/tiledtmxloader/#history(好吧,实际上是简单API(寻找一个与您的平台相对应的版本(处理器架构,32位与64位,Python版本(。目前tiledtmxloader只提供了一个3.1.0.131版本,它只能与Python3一起使用,所以它肯定不是您想要的。

PyPI上有主页和下载链接,这些链接指向谷歌代码档案。在下载页面上有一些旧版本。我尝试了最新的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-说明符和https://www.python.org/dev/peps/pep-0440/#direct-参考

我成功了,我不得不将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

我不得不在python2virtualenv中完成这一切,这是关于堆栈溢出问题的讨论。

除了我必须使用pygame 1.9.3而不是1.9.1之外,所有东西都能正常工作

相关内容

  • 没有找到相关文章

最新更新