如何在不更改路径环境变量的情况下安装 python 包?

Posted

技术标签:

【中文标题】如何在不更改路径环境变量的情况下安装 python 包?【英文标题】:How to install a python package without changing path environment variable? 【发布时间】:2019-08-06 00:27:22 【问题描述】:

在尝试使用pip 安装python 包dlib 时,我遇到了运行时错误,即:

Traceback (most recent call last):
.....
.....
.....
File "C:\Users\user-1\AppData\Local\Temp\pip-install-i8yuk2fa\dlib\setup.py", line 129, in run
        cmake_version = self.get_cmake_version()
File "C:\Users\user-1\AppData\Local\Temp\pip-install-i8yuk2fa\dlib\setup.py", line 125, in get_cmake_version
        "\n*******************************************************************\n")
RuntimeError:
*******************************************************************
CMake must be installed to build the following extensions: dlib
*******************************************************************

我在机器上安装了 CMake,但由于某些限制,我没有将 cmake.exe 的位置添加到 PATH。无论如何我可以在通过pip 安装时提供cmake.exe 文件的位置,即C:\Program Files\CMake\bin 作为参数,而不是通过Windows 10 操作系统上的高级系统设置更改路径环境变量?

谢谢。

【问题讨论】:

如果你安装了像 CLion 或 PyCharm 这样的 IDE,他们有一个用于在虚拟环境中安装包的 UI,它也有自己的 PATH 环境。作为一个非客观的旁注:我建议不要将 DLib 与 Python 一起使用,C++ API 更丰富。我要么将 DLib 与 C++ 一起使用,要么使用不同的 ML 库。有几个大的有复杂的 Python API。 @nada 不得不使用set 命令。感谢您的非客观旁注。随意陈述任何针对 Python 的特定 ML 库建议。 caffe、OpenCV、TensorFlow、MXNet、OpenNN、scikit-learn、Theano、Pylearn2、Pattern ...大胆的是我个人的建议. 【参考方案1】:

如果您使用的是命令提示符,您可以暂时将 add 添加到 PATH 变量中吗?喜欢:

set PATH=%PATH%;C:\Program Files\CMake\bin

【讨论】:

是的,但我的问题是我可以输入类似pip install --some-option="C:/Program Files/CMake/bin" dlib --user 的内容吗? @user-D-one号dlib的setup.pycalls cmake directly所以必须在%PATH%里面,而pip里面没有选项可以设置%PATH%。跨度> @phd 完美。谢谢你的澄清。这是首选流程吗?即检查用户想要安装的任何软件包的setup.py,以查看问题究竟出在哪里? @Robin Chow 会将您的解决方案标记为已接受的答案。用户“phd”解释了为什么这是唯一的方法。 setup.py 是第一个要寻找的地方,还有setup.cfg【参考方案2】:

我相信你没有办法做到这一点,除非你可以在命令提示符下使用 setx 或 set 更改路径。如果您无法使用命令提示符更改路径,那么除非您可以将 cmake 移动到路径上的某个位置,否则无法解决您的问题。

【讨论】:

根据用户 "phd" 的上述说明接受了您和 Robin 的回答。感谢您的帮助。

以上是关于如何在不更改路径环境变量的情况下安装 python 包?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不再次运行配置脚本/cmake 的情况下修改安装路径

为啥 Python 3.8.0 允许在不使用“非本地”变量的情况下从封闭函数范围更改可变类型?

openSUSE:在不更改默认版本的情况下安装 python 的替代版本

如何在不使用环境参数的情况下解决 GitHub 操作中的文件

如何在不使用语言环境模块的情况下获取国际货币符号?

如何在不使用 XML 路径和临时变量的情况下以一个逗号分隔值获取列值