ice*_*lon 10 python3 virtualenv virtualenvwrapper 22.04
问题:
bin我用virtualenvwrapper(virtualenv在后台使用)生成的虚拟环境的目录位于子文件夹中,local而不是导致全面损坏(主要virtualenvwrapper是vscode目前)。基本上,这些工具期望解释器位于<envname>/bin而不是位于<envname>/local/bin.
信息:
我已经做了一些研究并发现了以下内容:
posix_local在模块中使用sysconfig而不是作为posix_prefix默认方案,这在此处进行了解释bin为local/bin虚拟环境内部以响应前缀,这是在这个问题posix_local中提出的,并产生了这个补丁,该补丁应该修复这个错误系统:
问题:
virtualenv再次安装我的环境<envname>/bin,忽略posix_local选项?ice*_*lon 13
virtualenv的 GitHub 上的用户yingmanwumen发布了该问题的解决方案:
基本上,他们通过在选择的 shell 中导出以下变量来更改 sysconfig 方案:
export DEB_PYTHON_INSTALL_LAYOUT='deb'
Run Code Online (Sandbox Code Playgroud)
这会将默认安装方案从posix_local产生问题行为的 更改为deb_system,再次具有正常/预期的虚拟环境布局。可以使用以下片段检查当前的安装方案:
import sysconfig
print(sysconfig.get_default_scheme())
Run Code Online (Sandbox Code Playgroud)
需要注意的是,这是一个临时解决方案。真正的解决方案可能包括改变这种行为本身virtualenv。yingmanwumen 的问题以及我自己的问题都解决了该posix_local计划的问题。的开发人员virtualenv愿意接受 PR 来解决根本问题。如果提出并接受解决该问题的 PR,我将更新此答案。
专门为 解决此问题的PR已被接受virtualenv,这意味着 的所有版本virtualenv > 20.16.5都不应再出现此问题。
此外,该错误似乎在以下情况下才会发生:
[...] python3-distutils 未安装(或未使用deadsnakes分支时)
根据PR的提议者的说法。因此,如果遇到此问题,安装或使用deadsnakespython3-distutils fork版本也应该可以解决此问题。
最后,我们也在 Debian/Ubuntu 中努力解决这个问题,并使该posix_prefix方案总体上更加稳健。正如本次讨论中所见,这并不是由于安装方案混乱而发生的第一个问题。
| 归档时间: |
|
| 查看次数: |
5282 次 |
| 最近记录: |