gpt4 book ai didi

python - 添加相对路径到配置文件virtualenv_path_extensions.pth

转载 作者:行者123 更新时间:2023-12-01 02:15:01 29 4
gpt4 key购买 nike

我正在尝试找到一组必要的步骤来使 Windows 上的 python 3.6 虚拟环境可重定位。

我首先使用以下命令在 virtualenv 15.1.0 上创建了一个虚拟环境:

virtualenv
--always-copy
-a "path\to\project\dir"
-r "path\to\requirements.txt"
venv_name

之后,我运行以下命令来使用 virtualenv 内置的“使路径相对”功能:

virtualenv --relocatable venv_name

我的requirements.txt的一部分是pypiwin32库,至少在通过pip安装时,它不会工作,直到:

python Scripts/pywin32_postinstall.py -install

脚本已运行 ( See here for details )。

此时,如果我在 venv 目录中搜索硬编码的线索,我会在 script\activate.bat 中看到它们,我可以通过更改以下内容使其相对:

set "VIRTUAL_ENV=C:\path\to\venv"

进入此:

pushd %~dp0..
set VIRTUAL_ENV=%CD%
popd

还有其他一些地方我必须稍作调整才能使它们相对(我使用了 sublime 的文件夹搜索功能,并以我的用户名作为搜索参数 - 它显示了所有路径\to\username\then目录中的\some\more 样式行。

有 2 个硬编码路径并不那么简单:

<强>1。 “路径\to\venv\Lib\orig-prefix.txt”

我知道 orig-prefix.txt 是 venv 所基于的源 python 安装的记录,因此不能真正是相对的,但如果将 venv 移动到另一台机器,则可能需要留空(它不存在)可能会使 python 启动器崩溃,但它的空性很好。)

<强>2。 “路径\to\venv\Lib\site-packages\virtualenv_path_extensions.pth”

这比较棘手。由于它是一个硬编码路径,然后添加到 sys.path 作为查找模块的位置,因此当我将 venv 移动到另一台不存在该路径的计算机时,模块加载将失败。

有没有办法可以添加相对路径到配置文件,例如 virtualenv_path_extensions.pth

最佳答案

通常环境与特定路径相关联。这意味着您无法移动环境或将其复制到另一台计算机。您可以使用以下命令修复环境以使其可重新定位:

$ virtualenv --relocatable ENV

这将使 setuptools 创建的一些文件使用相对路径,并将更改所有脚本以使用 activate_this.py 而不是使用 Python 解释器的位置来选择环境。

注意:可重定位的脚本仅在激活 virtualenv 时才起作用,特别是 virtualenv 中的 python 可执行文件必须是系统路径上的第一个。另请注意,激活脚本当前无法通过 virtualenv --relocatable 进行重定位。

注意:您必须在将任何软件包安装到环境中后运行此命令。如果您使环境可重定位,然后安装新软件包,则必须再次运行 virtualenv --relocatable

此外,这不会使您的包跨平台。您可以移动该目录,但它只能在其他类似计算机上使用。一些已知的环境差异可能会导致不兼容:不同版本的 Python,当一个平台使用 UCS2 作为其内部 unicode 表示而另一个平台使用 UCS4(编译时选项)时,明显的平台变化,例如 Windows 与 Linux,或 Intel 与 Linux。 ARM,如果您有绑定(bind)到系统上的 C 库的库,如果这些 C 库位于不同的位置(不同的版本或不同的文件系统布局)。

关于python - 添加相对路径到配置文件virtualenv_path_extensions.pth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48427903/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com