我如何找到我的站点包目录的位置?
当前回答
这应该适用于虚拟环境内外的所有发行版,因为它是“低技术”性质。os模块总是位于'site-packages'的父目录中
import os; print(os.path.dirname(os.__file__) + '/site-packages')
要将dir更改为site-packages dir,我使用以下别名(在*nix系统上):
alias cdsp='cd $(python -c "import os; print(os.path.dirname(os.__file__))"); cd site-packages'
其他回答
这对我很有用。 它将为您提供dist-packages和site-packages文件夹。 如果文件夹不在Python的路径上,它就不会在 反正对你也有好处。
import sys;
print [f for f in sys.path if f.endswith('packages')]
输出(Ubuntu安装):
['/home/username/.local/lib/python2.7/site-packages',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']
解决方案:
在virtualenv之外-提供全局站点包的路径, 在virtualenv内部-提供virtualenv的站点包
...这是一行代码:
python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
格式化为可读性(而不是作为一行程序使用),看起来如下所示:
from distutils.sysconfig import get_python_lib
print(get_python_lib())
来源:一个非常旧的“如何安装Django”文档(尽管这不仅仅对安装Django有用)
对于那些正在使用诗歌的人,你可以通过诗歌调试找到你的虚拟环境路径:
$ poetry debug
Poetry
Version: 1.1.4
Python: 3.8.2
Virtualenv
Python: 3.8.2
Implementation: CPython
Path: /Users/cglacet/.pyenv/versions/3.8.2/envs/my-virtualenv
Valid: True
System
Platform: darwin
OS: posix
Python: /Users/cglacet/.pyenv/versions/3.8.2
使用这些信息,您可以列出站点包:
ls /Users/cglacet/.pyenv/versions/3.8.2/envs/my-virtualenv/lib/python3.8/site-packages/
from distutils.sysconfig import get_python_lib
print get_python_lib()
这对我来说很管用:
python -m site --user-site
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录