不使用pip/easy_install或"python setup.py install"安装模块

3
我正在尝试安装ptyprocess模块:https://github.com/pexpect/ptyprocess
由于服务器上的ssl问题,我无法执行“pip install ptyprocess”。
此外,我也不能克隆上述存储库并运行“python setup.py install”,因为存储库中没有setup.py文件;相反,有一个pyproject.toml需要“pip install pyproject.yoml”,但是这又依赖于被阻止的pip。
那么我该如何安装此模块?
附:我已经通过github在我的服务器上安装了其他模块,但它们都有所需的“setup.py”,而不是“pyproject.toml”,因此我能够成功运行“python setup.py install”。

这个回答解决了你的问题吗?如何在没有pip/easy_install的情况下手动安装pypi模块? - Josh Correia
2个回答

1
要安装一个模块,将包含最上层 __init__.py 的文件夹(或者 pyptrocess 文件夹)复制到你的 site-packages 目录下(通常在 {python location}\lib\site-packages)。你可能仍需要手动安装依赖项(在这种情况下是 flit)。请注意,这仅适用于纯 Python 包。

嗨,非常感谢。这解决了我的问题。+1。附言:你说的top __init__.py是什么意思?有两个,分别在不同的目录中。 - Alias
在Python中,存在一个__init__.py文件表示一个文件夹是一个库的根文件夹。一个模块要么是site packages中的单个文件,要么是包含一个__init__.py的单个文件夹。一个包通常有一个根目录下的__init__.py,可能还有其他子文件夹中的__init__.py用于其他子模块。一个独立的根文件夹中的__init__.py通常表示一个不同的相关模块,可能用于对主模块进行单元测试或类似操作。 - mousetail

0
我的pip在服务器上由于SSL问题被阻塞了。
把你的实际问题放在一边,你还应该解决这个问题。

回答你的问题,如果你要安装的包在PyPi上(这是pip通常搜索包的地方),那么你总是有手动下载它的选项,首先从项目页面的文件部分下载,然后再安装。在这种情况下,有两个可用的文件:

  1. ptyprocess-0.6.0-py2.py3-none-any.whl - 这是一个whl文件,由setuptools创建的预打包文件。它兼容python2和3版本,并且没有操作系统限制("any")。下载后,可以使用pip install ptyprocess-0.6.0-py2.py3-none-any.whl进行安装。
  2. ptyprocess-0.6.0.tar.gz - 这是源代码,可以使用pip install ptyprocess-0.6.0.tar.gz进行安装。

这个解决方案当然是针对在PyPi上可用的软件包的,作为一种解决办法,如果pip无法下载和安装项目本身。它还适用于离线机器上的pip install,只需在第二台机器上下载必要的文件,然后将其复制过来即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接