kil*_*lla 8 python pip setuptools
在 Windows 上使用源代码安装 python 包时pip install .
,pip-req-build-RANDOM_STRING
将在%USERPROFILE%/AppData
. 我想知道这个文件夹是干什么用的?似乎这里复制了一些源代码文件,并在此处运行 setup.py。有时它会导致错误。例如,具有以下项目结构:
gitrepo
? a.txt
? package_name
? setup.py
? ...
如果a.txt
在setup.py
by 中需要open('../a.txt')
,则pip install .
在 undergitrepo/package_name
将导致错误。
为什么我们必须在临时文件夹中构建源代码?无论如何我可以防止这种情况吗?
顺便说一句,我想用来pip install .
安装包而不是python setup.py install
.
当您使用 pip 安装 Python 包时,它通常首先从源代码构建包,然后将生成的构建工件(例如 Python 文件、编译的扩展等)安装到您的 Python 环境中。
pip 在临时目录中构建包的原因是为了避免与包的源代码目录发生任何冲突或干扰。这是因为构建过程可能会修改文件或将文件添加到包目录中,如果您尝试从同一目录再次构建或安装包,则可能会导致问题。
在您描述的错误的情况下,可能是相对于临时构建目录而不是原始包目录解析相对路径“../a.txt”,这导致了错误。避免此问题的一种方法是使用文件的绝对路径。
要回答有关是否有办法阻止 pip 在临时目录中构建包的问题,简短的答案是否定的,没有。此行为内置于 pip 的实现中,并且不可配置。
但是,如果您想在不使用 pip 的构建过程的情况下安装软件包,则可以使用命令“python setup.py install”。这将直接运行包的安装脚本并将生成的构建工件安装到您的 Python 环境中。请注意,如果包具有复杂的构建要求或您的环境中不可用的依赖项,则此方法可能并不总是有效。
归档时间: |
|
查看次数: |
1149 次 |
最近记录: |