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

124
我希望使用gntp模块来展示类似于烤面包机的C/C++软件通知。我想打包所有软件依赖项以便在另一台计算机上自行执行。 模块仅通过pip安装程序可用,但无法使用(运行软件的计算机没有互联网连接)

如何从源代码安装它?
我不想强制用户安装easy_install/pip并手动将pip路径添加到%PATH中。
PS:我正在使用Windows机器上的Python 2.7。

4
也许可以使用 python setup.py install 命令安装? - Nicolas
3个回答

181
  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)。

更多详细信息请参见:http://docs.python.org/2.7/install/index.html


16
通常,pip/easy_install/setup.py都支持使用"--user"标志进行安装,以便只为当前用户安装软件包,通常无需管理员权限。 - kwatford
4
由于某个原因,我看到了这个错误信息:ImportError: No module named 'setuptools' 我在这里找到了解决方法:https://pypi.python.org/pypi/setuptools/1.1.6 虽然安装过程中出现了异常错误,但现在 WebSocket 模块完全不工作了,我想我会放弃在 Windows 上使用 Python 3.3。 - SSH This
2
@SSHThis:我正在尝试安装一个软件包,但是遇到了相同的问题。增加详细程度后出现了“因为此发行版已经安装--multi-version[...]”,这既不正确(这里只安装了一个版本的Python),也没有帮助(使用文档中提到的“python -m easy_install [...]”也无济于事)。我和你一样,认为Python无法使用。 - Eric Towers
4
如果你希望在离线的情况下下载软件包,就不能真正地进行下载。我建议你可以按照以下步骤操作:1. 创建一个虚拟环境。2. 使用 python setup.py install 或者 pip install 安装所有需要的软件包。3. 运行 pip freeze 来获取所有软件包及其版本的列表。你可以把这个列表存储到一个文件中(通常称为 requirements.txt)。然后,如果你想要下载这些软件包以便将它们复制到其他机器上,你可以使用 pip download [options] -r <requirements file> 命令。虽然这不是最有效的方法,但很简单易行。 - Sheena
1
@JustMe:在安装任何需要Python的软件包之前,您需要先安装Python。 - Sheena
显示剩余7条评论

5
为了进一步解释 Sheena's answer,我需要安装 setup-tools 作为另一个工具(例如 more-itertools)的依赖项。

下载

点击 Clone or download 按钮并选择您的方法。我将它们放在用户主目录下的 dev/py/libs 目录中。它们保存的位置无关紧要,因为它们不会被安装在那里。

安装 setup-tools

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

python bootstrap.py
python setup.py install

安装通用依赖项

现在,您可以进入more-itertools目录并像平常一样进行安装。

  1. 下载该软件包
  2. 如果是压缩文件,请解压缩
  3. 进入包含setup.py的目录(使用命令:cd ...
  4. 如果文档中包含任何安装说明,请阅读并按照说明操作;否则
  5. 输入命令:python setup.py install

你好,这个解决方案不起作用。在setup-tools目录中没有bootstrap.py文件,并且运行python setup.py install时,它会给我相同的错误,即setuptools不存在,而这个解决方案就是为了安装setup tools。 - habiba

4
即使Sheena's的答案可以完成任务,但是pip并没有止步于此。
从Sheena的答案中:
  1. 下载软件包
  2. 如果它被压缩了,请解压缩
  3. 进入包含setup.py的目录
  4. 如果文档中包含任何安装说明,请阅读并按照说明操作;否则
  5. 输入python setup.py install
在此之后,您将在site-packages中获得一个.egg文件。作为用户,这不应该影响您。您可以像通常一样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安装。要卸载,只需执行常规操作pip uninstall <pkg>


3
如果我从Anaconda仓库安装一个包,但它没有setup.py文件怎么办? - Confounded

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