2015-04-09 29 views
7

Mọi thứ hoạt động tốt một lúc trước. Tôi không biết mình đã làm gì để thoát khỏi virtualenv, nhưng bây giờ nó hành động rất kỳ lạ. Bất kỳ trợ giúp được đánh giá cao.virtualenv sử dụng sys.path không chính xác

Khi thực hiện một virtualenv, tôi sử dụng lệnh này:

virtualenv -p /usr/bin/python3 venv 

Bây giờ tôi thấy rằng các gói cài đặt Tôi sử dụng pip install package không được nạp bởi python. Chúng được cài đặt đúng bằng pip, vào thư mục venv/lib/python3.4/site-packages, tuy nhiên con trăn trong virtualenv của tôi không nhìn qua thư mục đó cho các gói.

bằng Python:

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

Đây là sai! Đó là sử dụng đường dẫn sai và ít nhất phải bao gồm

/myhomedir/venv/lib/python3.4/site-packages 

Vì vậy, tôi có thể nhập gói của mình.

Trong thực tế, trong Python mở trong một virtualenv:

import sys 
sys.path.append("/myhomedir/venv/lib/python3.4/site-packages") 
import package 

công trình !!

Nhưng tôi không muốn phải tự thêm đường dẫn này mỗi khi tôi sử dụng Python. Tôi đã làm một cái gì đó để làm cho sys.path rất tức giận, và tôi không biết đó là gì.

Tôi chỉ sudo apt-get được cập nhật và sudo apt-get được nâng cấp để đảm bảo đó không phải là xung đột ... không có súc sắc.

Có thể liên quan:

tôi đã nhận thấy rằng lệnh virtualenv tôi kết quả đầu ra dòng sau:

Using base prefix '/usr' 

tôi không nhớ điều này xảy ra trước đó. Tuy nhiên ngay cả khi tôi làm virtualenv venv, (mà không chỉ định phiên bản Python, và đầu ra đó không xuất hiện) sys.path của tôi vẫn còn sai và gói không tải.

Có ai nghĩ gì không? Trợ giúp được đánh giá cao.

Trả lời

12

Giải quyết sự cố ... đăng kết quả nếu có ai khác có cùng vấn đề. Lỗi PICNIC ở mức độ cao nhất.

Trong file .bashrc của tôi, tôi đã có một bí danh python=/usr/bin/python3

Vâng khi virtualenv tôi đã cố gắng để thực hiện trăn, nó đã được tái định tuyến đến/usr/bin thay vì sử dụng nó python nội bộ.

+0

Hai ngày tìm kiếm và Giải Đáp để giải quyết vấn đề này. Cảm ơn bạn! – Rick

Các vấn đề liên quan