如何在没有pip / easy_install的情况下手动安装pypi模块?


91

我想使用gntp模块显示C / C ++软件的类似烤面包机的通知。我想打包所有依赖项,以使软件可以在另一台计算机上自行执行。

gntp模块仅可通过pip安装程序使用,无法使用(运行软件的计算机没有任何互联网连接):如何从源代码安装它?

我不想强迫用户安装easy_install / pip并手动将pip路径添加到%PATH。

PS:我在Windows计算机上使用Python 2.7。


4
也许与python setup.py install
尼古拉斯·

Answers:


149
  1. 下载包
  2. 解压缩后解压缩
  3. cd进入包含setup.py的目录
  4. 如果本文附带的安装指南中有任何安装说明,请阅读并按照说明进行操作。
  5. 输入 python setup.py install

您可能需要管理员特权才能执行步骤5。因此,在此执行的操作取决于您的操作系统。例如在Ubuntu中,您会说sudo python setup.py install

编辑-感谢Kwatford(请参阅第一个评论)

要在上述第5步中绕过对管理员特权的需求,您可以使用--user标志。这样,您只能为当前用户安装软件包。

文档说:

文件将安装到site.USER_BASE的子目录中(此后称为userbase)。此方案将纯Python模块和扩展模块安装在同一位置(也称为site.USER_SITE)。这是UNIX的值,包括Mac OS X:

可以在这里找到更多详细信息:http : //docs.python.org/2.7/install/index.html


8
pip / easy_install / setup.py通常接受一个--user标志,仅针对当前用户安装该软件包,通常绕开了管理员访问权限。
kwatford 2012年

3
由于某种原因,我看到了这一点:ImportError: No module named 'setuptools'我在这里发现:pypi.python.org/pypi/setuptools/1.1.6尽管安装给我带来了异常错误,但是现在websocket模块根本无法正常工作,我想我会给出此时在Windows上使用Python 3.3。
SSH

2
@SSHThis:对于要安装的软件包,我得到的结果相同。显示详细信息会给出“因为已安装此发行版--multi-version [...]”,这既是错误的(此处仅安装了python的一个版本),也没有帮助(使用已记录的“ python -m easy_install [...]” “完全没有帮助),我与您同在-Python无法使用。
Eric Towers

1
我猜pip install target-package通常会自动安装/更新目标软件包所依赖的其他软件包。如果使用setup.py方法,会发生这种情况吗?还是包的zip也包含所有依赖项?而且您是说我们应该下载python轮子而不是zip吗?喜欢这些numpy吗?如果没有,可以在哪里找到拉链(例如numpy)?(之所以问所有这些,是因为我被迫在公司代理后面工作,每次下载我都必须为此奋斗:'()
Mahesha999,18年

3
您不能在脱机时真正下载软件包...如果您想在愚蠢的工作网络之外下载软件包,那么我可能会执行以下操作:1.创建一个virtualenv。2.python setup.py installpip install您需要的所有东西。3.运行pip Frozen以获取所有软件包和所有版本的列表。您可以将其存储在文件中(传统上称为requirements.txt'。然后,如果您要下载软件包,以便将其复制到其他计算机上使用pip download [options] -r <requirements file>,这不是最有效的方法,但很容易
Sheena

5

为了进一步解释Sheena的答案,我需要安装setup-tools作为其他工具的依赖项,例如more-itertools

下载

单击Clone or download按钮,然后选择您的方法。我将它们放在dev/py/libs用户主目录中的目录中。它们保存在什么位置都没有关系,因为它们不会安装在此处。

安装设置工具

您将需要在setup-tools目录中运行以下命令。

python bootstrap.py
python setup.py install

常规依赖项安装

现在,您可以导航至more-itertools目录,并按常规进行安装。

  1. 下载包
  2. 如果是存档则将其解压缩
  3. 导航(cd ...)到包含以下内容的目录中setup.py
  4. 如果此处包含的文档中包含任何安装说明,请阅读并按照说明进行操作
  5. 输入: python setup.py install

2

即使Sheena的答案行之有效pip也不仅限于此。

从希娜的答案:

  1. 下载包
  2. 解压缩后解压缩
  3. cd进入包含setup.py的目录
  4. 如果此处包含的文档中包含任何安装说明,请阅读并按照说明进行操作
  5. 输入 python setup.py install

最后,您将在中找到一个.egg文件site-packages。作为用户,这不会打扰您。你可以importuninstall正常的包装。但是,如果要这样做,则pip可以继续以下步骤。

site-packages目录中

  1. unzip <.egg file>
  2. EGG-INFO目录重命名为<pkg>-<version>.dist-info
  3. 现在,您将看到一个单独的目录,其中包含包名称, <pkg-directory>
  4. find <pkg-directory> > <pkg>-<version>.dist-info/RECORD
  5. find <pkg>-<version>.dist-info >> <pkg>-<version>.dist-info/RECORD。本>>是为了防止覆盖。

现在,查看site-packages目录,您将永远不会意识到没有安装该目录pip。要uninstall,照常做pip uninstall <pkg>


如果我是从Anaconda存储库安装软件包但没有setup.py文件怎么办?
混淆了
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.