当我不得不通过apt-get安装python包并在python virtualenv中使用它时,我当前遇到了问题。软件包的开发人员表示安装软件包不能通过pip工作,建议通过apt-get安装。
所以我安装了.deb软件包,它将python模块安装到/ usr / lib / python3 / site-packages中,正如我所料。如果我运行python3,解释器会指示它是Python 3.5,并且命令import apt
成功。到目前为止一切都很好。
现在,我创建了一个新的虚拟环境virutalenv -p /usr/bin/python3 /home/me/python3_venv
然后我进入virtualenv(source ~/python3_venv/bin/activate
)并运行python解释器。解释器报告说它正在运行Python 3.5(Ubuntu 16.04的默认设置)。
但是,import apt
因No module name 'apt'
据我了解,当创建venv时,它会拉入所有包裹(或者引用它们?)。
我确实发现在/usr/lib
下,不同版本的Python有几个目录。 IE python3
,python3.5
,python3.6
,python2.7
,python2
。它们都不是符号链接。它们都是常规目录。因此,我不确定virtualenv在创建新环境时会抓取哪些资源。
答案 0 :(得分:1)
根据documentation,您可以在ENV/lib/pythonX.X/site-packages/
中的虚拟环境中找到安装的软件包,其中ENV
是您所在环境的位置。
在我的安装中,存在以下文件:
-rw-r--r-- 1 debian debian 126 Mar 19 22:50 easy_install.py
-rw-r--r-- 1 debian debian 315 Mar 19 22:50 easy_install.pyc
drwxr-xr-x 10 debian debian 4096 Mar 19 22:50 pip
drwxr-xr-x 2 debian debian 4096 Mar 19 22:50 pip-9.0.2.dist-info
drwxr-xr-x 4 debian debian 4096 Mar 19 22:50 pkg_resources
drwxr-xr-x 5 debian debian 4096 Mar 19 22:50 setuptools
drwxr-xr-x 2 debian debian 4096 Mar 19 22:50 setuptools-39.0.1.dist-info
drwxr-xr-x 4 debian debian 4096 Mar 19 22:50 wheel
drwxr-xr-x 2 debian debian 4096 Mar 19 22:50 wheel-0.30.0.dist-info
如果要使用系统站点包,请添加--system-site-packages
选项,例如:
virutalenv --system-site-packages -p /usr/bin/python3 /home/me/python3_venv
文档说:
如果使用virtualenv
--system-site-packages ENV
构建,则您的虚拟环境将从/usr/lib/python2.7/site-packages(或您的全局site-packages目录所在的位置)继承包。