我正在尝试运行一个旧的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下载,所以我不得不从源代码下载pygame
和tiledtmxloader
。我用了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
我不得不在python2virtualenv中完成这一切,这是关于堆栈溢出问题的讨论。
除了我必须使用pygame 1.9.3而不是1.9.1之外,所有东西都能正常工作