virtualenv python中的sys.path [英] sys.path in virtualenv python

查看:171
本文介绍了virtualenv python中的sys.path的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在虚拟环境中运行本地圣杯".我看不到虚拟环境中安装的库.从chalicelib/common.py文件内部,我看到要在以下位置设置的路径(sys.path):

I am running "chalice local" inside virtual environment. I don't see the libraries installed in virtual environment. From inside chalicelib/common.py file, I see the path(sys.path) to be set at:

['/home/sudip/myapp', '/usr/local/bin', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']

但是当我从虚拟环境控制台运行python3.6时,我看到了:

But when I run python3.6 from virtual environment console, I see this:

(venv) myapp$ python3.6
Python 3.6.5 (default, Mar 29 2018, 03:28:50) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print (sys.path)
['', '/home/sudip/myapp/venv/lib/python36.zip', '/home/sudip/myapp/venv/lib/python3.6', '/home/sudip/myapp/venv/lib/python3.6/lib-dynload', '/usr/lib/python3.6', '/home/sudip//myapp/venv/lib/python3.6/site-packages']
>>> 

这里的路径设置正确,为什么在以前的情况下不会发生.因此,在运行应用程序时,我会收到很多模块导入错误,例如:ModuleNotFoundError:没有名为"jwt"的模块.有人可以帮忙吗?

Here the path is properly set.Why its not happening in former case. Hence I am getting lot of module import errors when I run my application, as for example: ModuleNotFoundError: No module named 'jwt'. Can anybody help?

谢谢, Sudip

推荐答案

您需要使用选项--system-site-packages创建virtualenv才能访问系统(和站点)程序包:

You need to create your virtualenv with the option --system-site-packages to get access to the system (and site) packages:

virtualenv -p python3 --system-site-packages myvenv

这篇关于virtualenv python中的sys.path的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆