Python nối thêm đường dẫn để nhập

\[\newcommand{L}[1]{\. #1 \. }\newcommand{VL}[1]{\L{ \vec{#1} }}\newcommand{R}[1]{\operatorname{Re}\,[#1]}\newcommand{I}[1]

Python tìm kiếm các mô-đun ở đâu?

Nhìn thấy

  • ;
  • .

Giả sử chúng ta đã viết một mô-đun Python và lưu nó dưới dạng

def func[]:
    print["Running useful function"]
2, trong một thư mục có tên là
def func[]:
    print["Running useful function"]
3

Chúng tôi cũng có một tập lệnh có tên là

def func[]:
    print["Running useful function"]
4 trong một thư mục có tên là
def func[]:
    print["Running useful function"]
5

Chúng tôi muốn có thể

def func[]:
    print["Running useful function"]
6 mã trong
def func[]:
    print["Running useful function"]
2 để sử dụng trong
def func[]:
    print["Running useful function"]
4. Vì vậy, chúng tôi muốn có thể đưa dòng của anh ấy vào
def func[]:
    print["Running useful function"]
4

________số 8

Mô-đun và tập lệnh có thể trông như thế này

Nội dung của

import a_module

a_module.func[]
0

def func[]:
    print["Running useful function"]

Nội dung của

import a_module

a_module.func[]
1

import a_module

a_module.func[]

Hiện tại,

def func[]:
    print["Running useful function"]
4 sẽ thất bại với

def func[]:
    print["Running useful function"]
4

Khi Python chạm vào dòng

import a_module

a_module.func[]
3, nó sẽ cố gắng tìm một gói hoặc mô-đun có tên là
import a_module

a_module.func[]
4. Một gói là một thư mục chứa các mô-đun, nhưng bây giờ chúng tôi sẽ chỉ xem xét các mô-đun. Mô-đun là một tệp có phần mở rộng phù hợp, chẳng hạn như
import a_module

a_module.func[]
5. Vì vậy, Python đang tìm kiếm một tệp
def func[]:
    print["Running useful function"]
2 và không tìm thấy nó

Bạn sẽ thấy hiệu ứng tương tự tại bảng điều khiển Python tương tác hoặc trong IPython

def func[]:
    print["Running useful function"]
9

Python tìm kiếm các mô-đun trong “sys. con đường"

Python có một thuật toán đơn giản để tìm một mô-đun có tên đã cho, chẳng hạn như

import a_module

a_module.func[]
4. Nó tìm kiếm một tệp có tên là
def func[]:
    print["Running useful function"]
2 trong các thư mục được liệt kê trong biến
import a_module

a_module.func[]
9

def func[]:
    print["Running useful function"]
3

Tệp

def func[]:
    print["Running useful function"]
2 nằm trong thư mục
def func[]:
    print["Running useful function"]
3 và thư mục này không có trong danh sách
import a_module

a_module.func[]
9

Bởi vì

import a_module

a_module.func[]
9 chỉ là một danh sách Python, giống như bất kỳ danh sách nào khác, chúng tôi có thể thực hiện thao tác nhập bằng cách thêm thư mục
def func[]:
    print["Running useful function"]
3 vào danh sách

def func[]:
    print["Running useful function"]
9

Có nhiều cách khác nhau để đảm bảo một thư mục luôn nằm trong danh sách Python

import a_module

a_module.func[]
9 khi bạn chạy Python, bao gồm

  • đặt thư mục vào nội dung của biến môi trường
    def func[]:
        print["Running useful function"]
    
    46 – Sử dụng PYTHONPATH
  • biến mô-đun thành một phần của gói có thể cài đặt và cài đặt nó – xem. tạo một gói Python

Là một bản hack thô sơ, bạn cũng có thể đặt thư mục

def func[]:
    print["Running useful function"]
3 của mình trên Python
import a_module

a_module.func[]
9 ở đầu các tệp cần nó

Nội dung của

def func[]:
    print["Running useful function"]
49

def func[]:
    print["Running useful function"]
5

sau đó

def func[]:
    print["Running useful function"]
6

def func[]:
    print["Running useful function"]
90 đơn giản ở trên sẽ chỉ hoạt động khi chạy tập lệnh từ thư mục chứa thư mục con
def func[]:
    print["Running useful function"]
3. Ví dụ

def func[]:
    print["Running useful function"]
9

Điều này là do thư mục

def func[]:
    print["Running useful function"]
3 mà chúng tôi đã chỉ định là một đường dẫn tương đối và do đó Python tìm thư mục
def func[]:
    print["Running useful function"]
3 trong thư mục làm việc hiện tại

Làm cách nào để thêm đường dẫn đến PYTHONPATH?

Mở Terminal. gõ mở. bash_profile. Trong tệp văn bản bật lên, hãy thêm dòng này vào cuối. xuất PYTHONPATH=$PYTHONPATH. foo/bar. .
Trên Windows, với Python 2. 7 vào thư mục cài đặt Python
Mở gói Lib/trang web
Thêm một ví dụ. tập tin trống pth vào thư mục này
Thêm đường dẫn cần thiết vào tệp, mỗi đường dẫn trên mỗi dòng

Đường dẫn [__ tệp __] trong Python là gì?

Biến __file__. __file__ là biến chứa đường dẫn đến mô-đun hiện đang được nhập . Python tạo một biến __file__ cho chính nó khi nó chuẩn bị nhập một mô-đun.

Đường dẫn mô-đun Python ở đâu?

Nhận vị trí của một mô-đun cụ thể trong Python bằng mô-đun OS. Đối với một mô-đun Python thuần túy, chúng ta có thể định vị nguồn của nó bằng cách module_name. __file__ . Điều này sẽ trả về vị trí mà mô-đun.

Chủ Đề