Tôi đã gặp phải vấn đề tương tự tối nay. Hóa ra là một vấn đề trong đó tôi đã cài đặt nhiều gói numpy. Phiên bản cũ hơn đã được cài đặt /usr/lib/python2.7
và phiên bản chính xác đã được cài đặt /usr/local/lib/python2.7
.
Ngoài ra, tôi đã có PYTHONPATH=/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages
. PYTHONPATH đang tìm phiên bản cũ hơn của numpy trước phiên bản chính xác, vì vậy khi bên trong trình thông dịch Python, nó sẽ nhập phiên bản cũ hơn của numpy.
Một điều hữu ích là mở một phiên python, thực thi đoạn mã sau:
import numpy as np
print np.__version__
print np.__path__
Điều đó sẽ cho bạn biết chính xác phiên bản Python đang sử dụng và nơi nó được cài đặt.
Để khắc phục sự cố, tôi đã thay đổi PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages
. Và tôi cũng thiết lập một môi trường Python ảo bằng Hướng dẫn của Hitchiker về Python , cụ thể là phần có tiêu đề "Cấp thấp hơn: virtualenv". Tôi biết tôi nên thiết lập một môi trường ảo ngay từ đầu, nhưng tôi cảm thấy mệt mỏi và lười biếng. Ồ, bài học kinh nghiệm!
(Cập nhật)
Đề phòng trường hợp các tài liệu lại được di chuyển, đây là các thông tin liên quan về ...
Tạo môi trường ảo Python
Cài đặt virtualenv qua pip:
$ install virtualenv
Kiểm tra cài đặt:
$ virtualenv --version
Theo tùy chọn, et biến môi trường VIRTUALENVWRAPPER_PYTHON
để thay đổi phiên bản mặc định của python được sử dụng bởi môi trường ảo, ví dụ: sử dụng Python 3:
$ export VIRTUALENVWRAPPER_PYTHON=$(which python3)
Theo tùy chọn, đặt biến môi trường WORKON_HOME
để thay đổi thư mục mặc định mà môi trường ảo Python của bạn được tạo, chẳng hạn để sử dụng /opt/python_envs
:
$ export WORKON_HOME=/opt/python_envs
Tạo môi trường ảo cho dự án:
$ cd my_project_folder
$ virtualenv my_virtual_env_name
Kích hoạt môi trường ảo mà bạn vừa tạo. Giả sử bạn cũng đặt WORKON_HOME=/opt/python_envs
:
$ source $WORKON_HOME/my_virtual_env_name/bin/activate
Cài đặt bất kỳ gói Python nào mà dự án của bạn yêu cầu, sử dụng một trong hai phương pháp sau.
Phương pháp 1 - Cài đặt bằng pip
dòng lệnh:
$ pip install python_package_name1
$ pip install python_package_name2
Phương pháp 2 - Cài đặt bằng requests.txt
tệp:
$ echo "python_package_name1" >> requests.txt
$ echo "python_package_name2" >> requests.txt
$ pip install -r ./requests.txt
Tùy chọn, nhưng rất khuyến khích, cài đặt virtualenvwrapper
. Nó chứa các lệnh hữu ích để làm việc với môi trường Python ảo dễ dàng hơn:
$ pip install virtualenvwrapper
$ source /usr/local/bin/virtualenvwrapper.sh
Trên Windows, cài đặt virtualenvwrapper
bằng:
$ pip install virtualenvwrapper-win
Cách sử dụng cơ bản của virtualenvwrapper
Tạo một môi trường ảo mới:
$ mkvirtualenv my_virtual_env_name
Liệt kê tất cả các môi trường ảo:
$ lsvirtualenv
Kích hoạt môi trường ảo:
$ workon my_virtual_env_name
Xóa môi trường ảo (thận trọng! Điều này là không thể thay đổi được!):
$ rmvirtualenv my_virtual_env_name
Tôi hy vọng điều này giúp đỡ!