首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么virtualenv会显示所有已安装的软件包,而不会在virtualenv中安装模块?

为什么virtualenv会显示所有已安装的软件包,而不会在virtualenv中安装模块?
EN

Stack Overflow用户
提问于 2019-06-12 00:07:23
回答 1查看 245关注 0票数 2

问题

我不知道为什么当virtualenv激活时,pip freeze仍然显示所有模块,而它本不应该显示所有模块。我做错了什么?

在终端上

我尝试了两种方法来创建虚拟环境:

代码语言:javascript
复制
virtualenv my-virtualenv

virtualenv --no-site-packages my-virtualenv

然后激活它

代码语言:javascript
复制
source my-virtualenv/bin/activate

结果

两者都会显示所有包(当它们认为不会显示时)。运行命令pip freeze时,我得到:

代码语言:javascript
复制
(my-virtualenv)$ pip freeze

DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
actionlib==1.11.9
angles==1.9.11
bondpy==1.7.19
camera-calibration==1.12.20
camera-calibration-parsers==1.11.12
catkin==0.7.6
cv-bridge==1.12.4
diagnostic-analysis==1.9.2
diagnostic-common-diagnostics==1.9.2
diagnostic-updater==1.9.2
dynamic-reconfigure==1.5.48
gazebo-plugins==2.5.13
gazebo-ros==2.5.13
...
rosnode==1.12.7
rosparam==1.12.7
rospy==1.12.7
rosservice==1.12.7
rostest==1.12.7
rostopic==1.12.7
rosunit==1.13.5
roswtf==1.12.7
tf2-ros==0.5.16
topic-tools==1.12.7
xacro==1.11.2

正在运行

代码语言:javascript
复制
(my-virtualenv)$ which python
/home/user/.../my-virtualenv/bin/python

(my-virtualenv)$ python -V
Python 2.7.12

代码语言:javascript
复制
(my-virtualenv)$ which python3
/usr/bin/python3

(my-virtualenv)$ python3 -V
Python 3.5.2

因此,我甚至可以在virtualenv被激活时使用python3,但它使用的是pc安装的模块。

EN

回答 1

Stack Overflow用户

发布于 2021-02-18 23:37:30

我遇到了同样的问题,这是因为,不知何故,ROS的Python配置生成了它。

我解决了这个问题,从~/.bashrc中删除ROS的命令。例如:

代码语言:javascript
复制
source /opt/ros/melodic/setup.bash
source $HOME/ROS/aslam_ws/devel/setup.bash

顺便说一下,我意识到,在做任何改变之前,从PyCharm创建环境也能正常工作(当我在终端上时,我仍然有这个问题)。

肯定有更好的解决方案,但我还没有找到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56547786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档