2015-11-18 16 views
9

Vấn đề quan trọng của tôi là tôi không thể nhận được --no-site-packages để "làm việc".Virtualenv, no-site-packages, sys.path

Tôi đã đọc một loạt bài đăng trên SO, bao gồm this post. Tôi là một noob Ubuntu lớn, và không tốt hơn nhiều khi nói đến cách python tương tác với os.

Các bài đăng khác gợi ý rằng printenv sẽ hiển thị PYTHONPATH Khi tôi ở trong virtualenv, printenv của tôi không xuất hiện trong danh sách "PYTHONPATH", nhưng có thể là điều tôi nên tìm kiếm là dir nhận thức thay vì các chữ in hoa.

Điều tôi đã nhận thấy, tuy nhiên, là khi tôi chạy vỏ python trong virtualenv, tất cả các gói chung của tôi được liệt kê.

Tôi không chắc đây có phải là vấn đề với virtualenv, .bashrc, Ubuntu hoặc my brain. Mọi sự trợ giúp sẽ rất được trân trọng.

Nếu có một linh hồn nào đó, hiểu biết ngoài kia sẵn sàng giúp đỡ tôi trong một quá trình trở lại và ra, tôi sẽ rất biết ơn. Tôi đã không liệt kê bất kỳ đầu ra của tôi bởi vì, trung thực, ngoài những điều trên, tôi không hoàn toàn chắc chắn nơi để bắt đầu.

Chỉnh sửa để trả lời nhận xét; UTC: 07:41 19 Tháng Mười Một 2015

Bắt đầu từ môi trường:

[email protected]:~/Dropbox/$$ P/...$ virtualenv --no-site-packages venv 
New python executable in venv/bin/python 
Installing setuptools, pip, wheel...done. 

Bước vào môi trường:

[email protected]:~/Dropbox/$$ P/...$ source venv/bin/activate 
(venv)[email protected]:~/Dropbox/$$ P/...$ 

hệ thống trọn gói:

(venv)[email protected]:~/Dropbox/$$ P/...$ pip freeze 
adium-theme-ubuntu==0.3.4 
apt-xapian-index==0.46 
beautifulsoup4==4.4.1 
bleach==1.4.2 
blinker==1.3 
cffi==1.1.2 
characteristic==14.3.0 
chardet==2.3.0 
colorama==0.3.3 
command-not-found==0.3 
.... 
virtualenv==13.1.2 
virtualenv-clone==0.2.6 
virtualenvwrapper==4.7.1 
wheel==0.26.0 
whitenoise==1.0.6 
xdiagnose==3.8.1 
zope.interface==4.1.2 
(venv)[email protected]:~/Dropbox/$$ P/...$ 

sys.path:

012.351.
(venv)[email protected]:~/Dropbox/$$ P/...$ python 
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload',  
'/home/notanambiturner/.local/lib/python2.7/site-packages', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client'] 
>>> 

Bạn có thể thấy rõ ràng rằng các gói trang web được bao gồm trong sys.path gây phiền toái.

Python3 dường như tốt hơn một chút, không phải là tôi biết làm thế nào để sử dụng pip freeze với nó (hoặc thậm chí nếu tôi có thể):

(venv)[email protected]:~/Dropbox/$$ P/...$ python3 
Python 3.4.3+ (default, Oct 14 2015, 16:03:50) 
[GCC 5.2.1 20151010] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/usr/lib/python3.4', 
'/usr/lib/python3.4/plat-x86_64-linux-gnu', 
'/usr/lib/python3.4/lib-dynload', 
'/usr/local/lib/python3.4/dist-packages', 
'/usr/lib/python3/dist-packages'] 
>>> 

Tiếp chỉnh sửa. My mind is bottled hơn nữa. UTC 08:00 19 Nov 2015

Vì tôi là một nhà lý thuyết âm mưu, tôi đã thử tạo một venv bên ngoài Dropbox.

[email protected]:~$ source venv/bin/activate 
(venv)[email protected]:~$ pip freeze 
wheel==0.24.0 
(venv)[email protected]:~$ python 
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/home/notanambiturner/venv/lib/python2.7', 
'/home/notanambiturner/venv/lib/python2.7/plat-x86_64-linux-gnu', 
'/home/notanambiturner/venv/lib/python2.7/lib-tk', 
'/home/notanambiturner/venv/lib/python2.7/lib-old', 
'/home/notanambiturner/venv/lib/python2.7/lib-dynload', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/home/notanambiturner/venv/local/lib/python2.7/site-packages', 
'/home/notanambiturner/venv/lib/python2.7/site-packages'] 
    >>> 

Điều gì ... the ... heck ...? Ý tôi là, tôi cho rằng đó là một số tiến bộ? Có thể có điều gì đó liên quan đến tên tệp của tôi (\ $ \ $ \ P /) đang gây ra sự cố? Từ những gì tôi đã đọc, miễn là tôi sudo rm -rf venv nó sẽ không tạo sự khác biệt mà tôi đã tạo và xóa virtualenv s trong cùng một thư mục trước đó. Có đúng không?

Argh.

+3

Bạn có thể vui lòng nhập môi trường, chạy python và chạy 'import sys; print (sys.path) 'bên trong python; sau đó thêm tất cả các yếu tố đầu vào và đầu ra bạn đã thực hiện/nhận được vào bài đăng của bạn bằng cách chỉnh sửa nó? –

+1

Nó chủ yếu liên quan đến cách bạn kích hoạt cho virtualenv của bạn. Xin vui lòng gửi các lệnh đầy đủ và đầu ra của chúng như thế nào bạn chạy chúng. –

+0

Cảm ơn mọi người! Tôi không thể nói cho bạn cảm giác tốt khi có ai đó giúp tôi với vấn đề siêu khó chịu này. Tôi đã chỉnh sửa bài đăng cho mỗi nhận xét của bạn. Cảm ơn bạn đã giúp đỡ! – NotAnAmbiTurner

Trả lời

0

Có lỗi khi sử dụng $ trong tên đường dẫn (ít nhất là trên Ubuntu).