Cách thêm tệp vào đường dẫn python

Thực hiện một cách nghiêm túc, một mô-đun là một tệp python duy nhất, trong khi một gói là một thư mục chứa các tệp python, kèm theo một tệp (có thể để trống) có tên là

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
9, để nói với python rằng đó là một gói để nhập các mô-đun từ. Trong cả hai trường hợp, các mô-đun cần tiện ích mở rộng
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
0 nhưng việc nhập chúng được thực hiện mà không cần (xem thêm bên dưới)

Theo mặc định, Python tìm kiếm các mô-đun và gói của nó trong

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
0

Để tìm hiểu những gì được bao gồm trong $PYTHONPATH, hãy chạy đoạn mã sau trong python (3)

import sys
print(sys.path)

Cách thêm danh mục

Thỉnh thoảng

Từ trong tệp python, thỉnh thoảng bạn có thể thêm (các) đường dẫn vào đường dẫn mặc định bằng cách thêm các dòng sau vào phần đầu của ứng dụng hoặc tập lệnh python của bạn

import sys
sys.path.insert(0, "/path/to/your/package_or_module")

Ví dụ

nếu tôi có một thư mục.

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
1 và tôi muốn nhập tệp
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
2, nằm trong thư mục đó, tôi thêm tệp này vào phần đầu của mã của mình

import sys
sys.path.insert(0, "/home/myname/pythonfiles")

Và tôi chỉ có thể nhập tệp

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
2 bằng cách

import module_1

Khi tôi tạo một gói và muốn nhập (các) mô-đun từ gói, tôi cần tạo một thư mục trong

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
0, chứa các mô-đun, kèm theo một tệp (có thể để trống) có tên là
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
9

Ví dụ

Để nhập từ một gói (thư mục) có tên là

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
6 trong
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
1 , hãy thêm đường dẫn
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
1 vào
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
0 của bạn, như trong ví dụ 1 và nhập mô-đun có tên là
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
0 (bên trong thư mục gói) chỉ với. `

import sys
print(sys.path)
4

Thêm thư mục vào

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
0 vĩnh viễn

Thêm dòng sau vào tệp

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
2 của bạn

import sys
print(sys.path)
7

thư mục con

Từ bên trong một gói, các thư mục con không được bao gồm như vậy; . Để nhập mô-đun

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
3, bên trong thư mục
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
4 bên trong thư mục
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
5

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
1

Với thực tế là tất cả các thư mục con trong gói bao gồm tệp

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
9 của riêng chúng

Khi một mô-đun nằm trong cùng thư mục với tập lệnh hoặc ứng dụng

Không cần chèn đường dẫn đến một mô-đun khi nó nằm trong cùng thư mục với tập lệnh hoặc ứng dụng, nó sẽ tự động được thêm vào

Trong Python, danh sách các thư mục được tìm kiếm khi nhập các mô-đun và gói với

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
3, đường dẫn tìm kiếm mô-đun, được lưu trữ trong
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
4

  • 6. Mô-đun - Đường dẫn tìm kiếm mô-đun — Python 3. 10. 0 tài liệu

Bài viết này mô tả cách kiểm tra các đường dẫn tìm kiếm mô-đun hiện tại và thêm các đường dẫn mới

  • Kiểm tra đường dẫn tìm kiếm mô-đun với
    import sys
    sys.path.insert(0, "/home/myname/pythonfiles")
    
    4
  • Thêm đường dẫn tìm kiếm mô-đun mới với
    import sys
    sys.path.insert(0, "/home/myname/pythonfiles")
    
    6
  • Thêm đường dẫn tìm kiếm mô-đun mới với
    import sys
    sys.path.insert(0, "/home/myname/pythonfiles")
    
    7
  • Thêm đường dẫn tìm kiếm mô-đun mới với tệp cấu hình đường dẫn (
    import sys
    sys.path.insert(0, "/path/to/your/package_or_module")
    
    20)

Xem bài viết sau để biết cách sử dụng cơ bản của

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
3

  • Cách nhập mô-đun, gói, chức năng, v.v. trong Python

Liên kết được tài trợ

Kiểm tra đường dẫn tìm kiếm mô-đun với import sys sys.path.insert(0, "/home/myname/pythonfiles") 4

Đường dẫn tìm kiếm mô-đun hiện tại được lưu trữ trong

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
4

  • hệ thống. đường dẫn — Tham số và chức năng dành riêng cho hệ thống — Python 3. 10. 0 tài liệu

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
4 là danh sách các chuỗi chỉ định đường dẫn tìm kiếm mô-đun. Bạn có thể kiểm tra các mục với
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
25

Trong ví dụ này,

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
26 được sử dụng để dễ đọc hơn

  • In đẹp với pprint trong Python

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
5

nguồn. print_sys_path. py

Khi thực hiện, kết quả như sau

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
2

nguồn. sys_path_check_bash. sh

Kết quả phụ thuộc vào môi trường. Trong môi trường ví dụ (Mac với Python3 được cài đặt bởi Homebrew), các thư mục sau được lưu trữ trong

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
4

  1. Thư mục chứa tập lệnh đã thực thi (
    import sys
    sys.path.insert(0, "/path/to/your/package_or_module")
    
    28)
  2. Thư mục được đặt bởi biến môi trường
    import sys
    sys.path.insert(0, "/home/myname/pythonfiles")
    
    7 (xem bên dưới để biết chi tiết)
  3. Thư mục làm việc hiện tại
  4. Ba thư mục cho thư viện tiêu chuẩn
  5. Thư mục
    import sys
    sys.path.insert(0, "/path/to/your/package_or_module")
    
    80 dành cho thư viện bên thứ ba được cài đặt với
    import sys
    sys.path.insert(0, "/path/to/your/package_or_module")
    
    81

Nếu bạn di chuyển thư mục hiện tại trong thiết bị đầu cuối và thực hiện lại nó, thì

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
82 sẽ chuyển sang đường dẫn khác

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
8

nguồn. sys_path_check_bash. sh

Vì đường dẫn tìm kiếm mô-đun thay đổi tùy thuộc vào thư mục hiện tại, quá trình nhập có thể không hoạt động tùy thuộc vào nơi tệp tập lệnh được thực thi

Các mô-đun được tìm kiếm theo thứ tự

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
4. Do đó, các mô-đun trong thư mục chứa tệp script đã thực thi (
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
28) được tìm kiếm đầu tiên. Lưu ý rằng nếu có một tệp có cùng tên với thư viện chuẩn trong cùng thư mục với tệp tập lệnh được thực thi, tệp đó sẽ được nhập

Thêm đường dẫn tìm kiếm mô-đun mới với import sys sys.path.insert(0, "/home/myname/pythonfiles") 6

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
4 chỉ là một danh sách nên bạn có thể thêm các đường dẫn mới. Trong ví dụ này, phương thức
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
87 được sử dụng, nhưng bạn cũng có thể sử dụng phương thức
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
88, v.v.

  • Thêm một mục vào danh sách trong Python (chắp thêm, mở rộng, chèn)

Nếu bạn

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
3 sau khi thêm đường dẫn vào
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
4, bạn có thể nhập các mô-đun trong đường dẫn đã thêm

Ví dụ: nếu bạn muốn thêm một thư mục ở trên tệp script một cấp, bạn có thể viết như sau

  • Nhận đường dẫn của tệp hiện tại (tập lệnh) bằng Python.
    import sys
    sys.path.insert(0, "/path/to/your/package_or_module")
    
    51

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
5

nguồn. main_sys_path_append. py

Thêm vào

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
4 chỉ hoạt động trong mã đó. Nếu bạn muốn thêm đường dẫn vĩnh viễn, hãy sử dụng tệp
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
7 hoặc
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
20 được mô tả tiếp theo

Liên kết được tài trợ

Thêm đường dẫn tìm kiếm mô-đun mới với import sys sys.path.insert(0, "/home/myname/pythonfiles") 7

Sử dụng biến môi trường

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
7 để thêm vĩnh viễn đường dẫn tìm kiếm mô-đun

  • 1. Dòng lệnh và môi trường - PYTHONPATH — Python 3. 10. 0 tài liệu

Đối với hệ điều hành giống Unix bao gồm cả Mac, hãy thêm phần sau vào

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
57 chẳng hạn. Để chỉ định nhiều đường dẫn, hãy phân tách chúng bằng dấu hai chấm
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
58

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
0

Trong Windows, bạn có thể thêm

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
7 cũng như các biến môi trường thông thường bằng cách nhấp chuột phải vào PC (Máy tính của tôi) -> Hệ thống -> Thuộc tính hệ thống -> Biến môi trường. Trong Windows, phân tách nhiều đường dẫn bằng dấu chấm phẩy
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
00

Thư mục

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
01 trong ví dụ trên được thêm vào
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
7

Thêm đường dẫn tìm kiếm mô-đun mới với tệp cấu hình đường dẫn (import sys sys.path.insert(0, "/path/to/your/package_or_module") 20)

Nếu bạn đặt tệp cấu hình đường dẫn (

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
20) trong thư mục
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
80, bạn có thể thêm đường dẫn tìm kiếm mô-đun

  • trang web — Móc cấu hình dành riêng cho trang web — Python 3. 10. 0 tài liệu

Tệp cấu hình đường dẫn (

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
20) phải chứa một đường dẫn trên mỗi dòng. Nó có thể là đường dẫn tương đối hoặc đường dẫn tuyệt đối. Có thể viết bình luận với
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
07. Tên tệp có thể là bất kỳ thứ gì miễn là phần mở rộng là
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
08