Nếu có nhiều phiên bản của gói được cài đặt, ví dụ: Scipy:
>>> import scipy; print(scipy.__version__); print(scipy.__file__)
0.17.0
/usr/lib/python3/dist-packages/scipy/__init__.py
và người ta sẽ thích phiên bản cài đặt người dùng (được cài đặt ví dụ sử dụng pip install --user --upgrade scipy
) được ưa thích, người ta cần một tập tin usercustomize.py trong ~/.local/lib/python3.5/site-packages/
với ví dụ nội dung này:
import sys, os
my_site = os.path.join(
os.environ['HOME'], '.local/lib/python%d.%d/site-packages' % (
sys.version_info[0], sys.version_info[1]))
for idx, pth in enumerate(sys.path):
if pth.startswith('/usr'):
sys.path.insert(idx, my_site)
break
else:
raise ValueError("No path starting with /usr in sys.path")
(vòng lặp for chọn chỉ số đảm bảo rằng các gói cài đặt trong "phát triển chế độ" được ưu tiên) bây giờ chúng tôi có được phiên bản cụ thể người sử dụng của chúng ta về scipy:
>>> import scipy; print(scipy.__version__); print(scipy.__file__)
0.18.1
/home/user/.local/lib/python3.5/site-packages/scipy/__init__.py
Nguồn
2017-01-23 06:48:27
có bạn đã cố gắng chỉ thêm vào trước đường dẫn đến các phiên bản của thư viện trước khi nhập khẩu? tức là 'sys nhập khẩu; sys.path.insert (0, "/ path/to/your/version"); import something' – bjarneh
Tôi chưa bao giờ tự làm điều này, nhưng tôi nghĩ bạn có thể sử dụng hàm imp.find_module() và imp.load_module(). [Tài liệu] (http://docs.python.org/library/imp.html) – malbani