khi tôi import module sử dụnglàm thế nào để có được vị trí mô-đun
import module_name
là nó có thể để xem nơi trong ổ cứng của tôi là mô-đun đó nằm ở đâu?
khi tôi import module sử dụnglàm thế nào để có được vị trí mô-đun
import module_name
là nó có thể để xem nơi trong ổ cứng của tôi là mô-đun đó nằm ở đâu?
Điều đáng nói rằng các gói có __file__
thuộc tính mà điểm đến __init__.py
, họ cũng có __path__
mà chỉ vào thư mục gói. Vì vậy, bạn có thể sử dụng hasattr(module_name, '__path__') and module_name.__path__[0] or module_name.__file__
.
Ví dụ (trong REPL):
import socket, SOAPpy # SOAPpy is a package
socket.__file__
# .../python2.5/socket.pyc
socket.__path__
# AttributeError: 'module' object has no attribute '__path__'
SOAPpy.__file__
# .../2.5/site-packages/SOAPpy/__init__.pyc
SOAPpy.__path__
# ['.../2.5/site-packages/SOAPpy']
Bạn có bằng chứng? Tôi chỉ thử nó trên một gói của riêng tôi, '__file__' là có (' gói/__ init __. Pyc'), như nó phải được, nhìn thấy như là "gói" nhập khẩu chỉ là một mô-đun gọi là '__init__'. ('gói .__ path__ == ['gói']') –
@Chris Đã cập nhật, cảm ơn bạn. – khachik
còn các chức năng thì sao? có thể có vị trí cũng được xác định (tốt các tùy chọn khác có vẻ là chỉ cần kiểm tra đường dẫn của mô-đun mà từ đó nó đang được nhập khẩu và hy vọng rằng không có mangling ở giữa –
import module_name
module_name.__file__
Thử: module_name.__file__
.
Nếu bạn muốn 'kiểm tra' một đối tượng, sử dụng: inspect
Bạn có thể sử dụng tập tin thuộc tính mô-đun để tìm ra địa điểm.
import sys print sys.__file__
Duplicate của: http://stackoverflow.com/questions/269795/how-do-i-find-the-location-of-python-module-sources – Hugo