简体   繁体   中英

sys.path in virtualenv python

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']

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']
>>> 

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?

Thanks, Sudip

您需要使用--system-site-packages选项创建您的virtualenv来访问系统(和站点)软件包:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM