Python virtualenv不同环境版本import问题,pythonvirtualenv,电脑里有Python2.
Python virtualenv不同环境版本import问题,pythonvirtualenv,电脑里有Python2.
电脑里有Python2.7和Python3.4,在Python3.4里安装了virtualenv。
通过virtualenv,创建了两个环境,一个是通过指定版本的使用Python2.7的版本Py27,另一个使用Python3.4的版本Py34。
今天我在Python2.7里安装了PIL,然后在Py27里,import不出来。
我看Py27目录下的Lib子目录,发现没有PIL,那怎么能告诉virtualenv我安装了这个东西,然后能import出来?
一般不推荐在环境之间共享用户包咯,毕竟 venv 就是为了隔离嘛。不过,如果你确实需要在 venv 环境中使用全局的用户包,需要在创建该环境的时候加上 --system-site-packages 选项,副作用是该系统环境所有的用户包在 venv 环境中都能访问了,不能单独选择。
当然,还有更 hacky 的办法可以做到你期望的结果,比如手动软连接过去:
ln -s /usr/lib/python2.7/site-packages/PIL path_to_your_venv/lib/python2.7/site-packages/PIL
但是这样做无法保证包得完整性,毕竟不是 setup.py 装的,所以风险自担。
为什么不在 Py27 里再安装一次 PIL?
创建 env 的时候,要加上 --no-site-packages,保证这个 env 的独立。
activate py27 env 以后,在这个 env 下安装 PIL。使用 PIL 的时候,也要保证已激活这个环境。
virtualenv --no-site-packages py27 # 创建一个 env
source ./py27/bin/activate # 激活环境
pip install pil
如果你要在 IDE 里使用 pil,那么 IDE 里 project 的 python 环境也要设置成这个 py27。
编橙之家文章,
相关内容
- Python生成.exe程序操作方式及兼容问题,python.exe,新手求
- Python捕获解释器出错问题,python捕获解释器,一个项目里
- Python显示中文怎样做?需要加包吗,,如题。encoding:
- Python网站系统消息相关模型设计注意哪些问题,python模
- 二次扫描带参数二维码提示“无法服务”什么原因?已
- 大牛看下想动态获取对象特定属性名称,python源码应该怎
- Django admin管理站点修改账户属性报 column 'change_messsage
- Python模块之间共享静态变量的实现原理是什么,python静
- Python元组对索引引用正确语法应该是什么,python索引
- Python判断rss是否更新过用什么方法,python判断rss更新
评论关闭