Tôi có một mô-đun tùy chỉnh trong một trong các thư mục trong PYTHONPATH của tôi có cùng tên với một trong các mô-đun thư viện chuẩn, để khi tôi import module_name
, mô-đun đó được tải. Nếu tôi muốn sử dụng mô-đun thư viện chuẩn ban đầu, có cách nào để buộc Python nhập từ thư viện chuẩn thay vì từ thư mục PYTHONPATH, không đổi tên mô-đun tùy chỉnh và thay đổi mọi tham chiếu để trỏ đến tên mới?Mô-đun nhập khẩu từ thư viện chuẩn Python thay vì PYTHONPATH mặc định
Trả lời
Các giải pháp lý tưởng sẽ được đổi tên mô-đun của bạn để một cái gì đó không có trong thư viện chuẩn.
Bạn cũng có thể switch absolute imports on nếu bạn đang ở trên Python 2.5+:
from __future__ import absolute_import
Tôi sẽ sử dụng nhập khẩu tương đối như thế nào để lấy phiên bản thư viện chuẩn? – jrdioko
Tôi hiểu sai câu hỏi của bạn, câu trả lời đã chỉnh sửa. –
Điều này sẽ không thực sự hữu ích? –
Bạn có thể chọn các module bạn muốn nhập với các module imp:
import imp
mymodule = imp.load_module(name, file, pathname, description)
Đừng.
Nếu bạn vô tình chọn tên mô-đun thư viện chuẩn, hãy thay đổi tên mô-đun của bạn để kết thúc xung đột.
Đây có lẽ là giải pháp tốt nhất, cả hai không gây nhầm lẫn trong các trình lập trình truy cập và thực tế là hành vi nhập một mô-đun không phải là nhập tương đối sẽ không thay đổi khi nhập tuyệt đối. –
Cách tốt nhất để làm điều đó là để đưa dự án của bạn trong một thư mục giả "myproject" mà nằm trên:
/home/me/myproject
Thực hiện một liên kết tượng trưng đến myproject thư mục với một trong các đường dẫn trăn mặc định, ví dụ:
# ln -s /home/me/myproject /usr/local/lib/python2.7/dist-packages/myproject
Bây giờ khi bạn muốn để nhập một mô-đun trong dự án của bạn chỉ cần mở một trình thông dịch python.
>>> from myproject.mymodule import *
Nó sẽ hoạt động như một sự quyến rũ.
Một điều cuối cùng, không đặt tên cho dự án của bạn giống như những gì được tìm thấy trong đường dẫn python, vì vậy bạn sẽ không gặp vấn đề trong khi nhập.
Cách tốt hơn là sử dụng 'PYTHONPATH'. Ngoài ra, không sử dụng 'from x import *' vì nó gây nhầm lẫn với các công cụ phân tích tĩnh và làm cho khó hiểu hơn một biến đến từ đâu. – bfontaine
- 1. python không thể nhập từ thư viện chuẩn
- 2. Không nên nhập khẩu tuyệt đối theo mặc định trong python27?
- 3. Không nhập khẩu python từ một thư mục khác
- 4. bộ PYTHONPATH trước khi báo cáo nhập khẩu
- 5. Mã số ác từ thư viện chuẩn Python
- 6. Nhập lớp thư viện trong Python
- 7. Python - PYTHONPATH trong linux
- 8. Ổn định qsort thư viện chuẩn?
- 9. PuTTY: Thay đổi thư mục đăng nhập SSH mặc định
- 10. Thư viện chuẩn Python có thực sự chuẩn không?
- 11. Làm thế nào để nhập khẩu tiêu chuẩn thư viện thay vì mô-đun cùng tên trong đường dẫn mô-đun
- 12. Python "từ xxx xxx.yyy nhập khẩu" lỗi
- 13. Scalaz thư viện kỹ thuật nhập khẩu lập luận
- 14. thư viện python cho người dùng nhập
- 15. PYTHONPATH lờ
- 16. Lưu Thư viện ảnh vào Thư viện ảnh Thay vì Camera Roll
- 17. thêm thư mục vào sys.path/PYTHONPATH
- 18. Vĩnh viễn thêm thư mục vào PYTHONPATH
- 19. Python gói nhập từ thư mục cha
- 20. Liên kết đến thư viện nhập khẩu Python trong Visual Studio 2005
- 21. IronPython có thực hiện thư viện chuẩn python không?
- 22. từ. nhập khẩu XXXX
- 23. Tài liệu thư viện chuẩn của SBCL?
- 24. Có thể tạo đường dẫn mặc định của FolderBrowserDialog hiển thị trong thư viện thay vì đĩa thực không?
- 25. Python: làm thế nào để nhập khẩu từ tất cả các mô-đun trong thư mục?
- 26. từ. nhập khẩu * từ mô-đun
- 27. GHC/FFI: gọi mô-đun Haskell đó nhập khẩu các thư viện Haskell từ C
- 28. Thêm một thuộc tính vào một từ điển python từ thư viện chuẩn
- 29. vấn đề cơ bản Java/Eclipse: thư viện tiêu chuẩn không thể được nhập khẩu vào dự án Android
- 30. Tôi tìm mã thư viện chuẩn python ở đâu?
Có gì xấu khi đổi tên mô-đun của bạn? –
Nó sẽ chỉ liên quan đến việc thực hiện thay đổi đối với hàng tá tệp. Nghe có vẻ như đó là giải pháp tốt nhất. – jrdioko
Bạn có 'grep', vì vậy không quá khó để tìm ra từng cái và sửa chúng. –