Cách lấy đường dẫn tuyệt đối của mô-đun có thể được nhập ở nơi khác?Python: Tìm đường dẫn tuyệt đối của mô-đun đã nhập
8
A
Trả lời
24
Như các câu trả lời khác đã nói, bạn có thể sử dụng __file__
. Tuy nhiên, lưu ý rằng điều này sẽ không cung cấp đường dẫn đầy đủ nếu mô-đun kia nằm trong cùng thư mục với chương trình. Vì vậy, để được an toàn, làm một cái gì đó như thế này:
>>> import os
>>> import math
>>> os.path.abspath(math.__file__)
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/math.so'
Dưới đây là một ví dụ với một mô-đun Tôi đã gọi checkIP
để minh họa cho lý do tại sao bạn cần phải nhận được abspath (checkIP.py
là trong thư mục hiện hành):
>>> import os
>>> import checkIP
>>> os.path.abspath(checkIP.__file__)
'/Users/Matthew/Programs/checkIP.py'
>>> checkIP.__file__
'checkIP.py'
1
Bạn có thể thử:
import os
print os.__file__
để xem nơi các module nằm.
1
Nếu đó là một mô-đun bên trong cây thư mục PYTHONPATH của bạn (và có thể truy cập bằng cách đặt __init__.py
trong thư mục của thư mục và thư mục mẹ), sau đó gọi thuộc tính đường dẫn.
>>>import sample_module
>>>sample_module.__path__
['/absolute/path/to/sample/module']
Bạn có nghĩa là đường dẫn hệ thống tệp vào tệp hoặc đường dẫn mô-đun Python không? – Keith
@Kỹ thuật hệ thống tệp. – Determinant
Trong trường hợp bất kỳ ai đang tìm cách thực hiện điều này bằng chức năng 'function_name .__ code__' hoạt động tốt khi nhận được đường dẫn tệp đầy đủ. – KBoehme