gpt4 book ai didi

python - virtualenv 在 Ubuntu 上创建名为 'local' 的目录

转载 作者:行者123 更新时间:2023-11-28 19:52:30 26 4
gpt4 key购买 nike

如果我使用 Ubuntu 18.04 创建一个 virtualenv,则会创建一个名为 local 的目录。

virtualenv test-env
cd test-env
ls -l local/

输出:

lrwxrwxrwx 1 foo foo 30 Jan 30 10:47 bin -> /home/foo/tmp/test-env/bin
lrwxrwxrwx 1 foo foo 34 Jan 30 10:47 include -> /home/foo/tmp/test-env/include
lrwxrwxrwx 1 foo foo 30 Jan 30 10:47 lib -> /home/foo/tmp/test-env/lib

版本:

virtualenv --version
15.0.3

这不会发生在其他机器上(例如企业版 SuSE Linux)

据我所知不需要这个目录。

有没有办法避免这个不需要的名为 local 的目录?

(这是关于 Python 2.7 的)

最佳答案

通过查阅文档和一些较旧的 SO 帖子,我偶然发现了 this回答,和官方Release Notes .

在我的 Ubuntu 16.04virtualenv 15.0.1 组合中,~/.local 文件夹包含所有与 Python 相关的库、文档、和二进制文件。

我怀疑 virtualenv 正试图“匹配”这种方法,以保持与裸系统上运行的脚本的兼容性,因为 Python $PATH 在那里寻找与 Python 相关的模块、包等

Python 2.7.12 (default, Dec  4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print '\n'.join(sys.path)

/usr/lib/python2.7
/usr/lib/python2.7/plat-x86_64-linux-gnu
...
/home/<username>/.local/lib/python2.7/site-packages
...
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages

如果我在我的 virtualenv 中运行相同的命令,我会在我的 Python 路径中得到这两个目录。

Python 2.7.12 (default, Dec  4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print '\n'.join(sys.path)

/home/<username>/python-venv-tests/lib/python2.7
/usr/lib/python2.7
...
/home/<username>/python-venv-tests/local/lib/python2.7/site-packages
/home/<username>/python-venv-tests/lib/python2.7/site-packages
...

所以,回答你的问题

  • .local 目录仅包含指向虚拟环境的“正确”/bin、/include、/lib 的符号链接(symbolic link),因此不存在重复库的危险
  • 这很可能是作为对 Ubuntu 使用 ~/.local Python 包的兼容性措施完成的
  • 这意味着如果您确实需要,您可以自由删除它和/或更改您的 Python $PATH,但这不会对您的工作流程产生任何影响(或者如果您计划迁移虚拟环境到不同的主机)。
  • 一般来说,我建议保持原样,以便虚拟环境尽可能匹配系统结构,并且其他可能具有依赖于它的硬编码值的脚本/用户可以避免错误。

关于python - virtualenv 在 Ubuntu 上创建名为 'local' 的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54437681/

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