Hướng dẫn add package to python path - thêm gói vào đường dẫn python

Làm thế nào Python tìm thấy các mô -đun của nó

Được thực hiện nghiêm ngặt, một mô -đun là một tệp Python duy nhất, trong khi 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

import sys
sys.path.insert(0, "/path/to/your/package_or_module")
6, để nói với Python rằng đó là một gói để nhập các mô -đun. 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, "/path/to/your/package_or_module")
7 của chúng, nhưng nhập chúng được thực hiện mà không có (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")
8.

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

import sys
print(sys.path)

Cách thêm thư 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 Python hoặc tập lệnh:

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")
9 và tôi muốn nhập tệp
import sys
sys.path.insert(0, "/home/myname/pythonfiles")
0, nằm trong thư mục đó, tôi thêm phần này vào phần đầu của mã của tôi:

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, "/home/myname/pythonfiles")
0 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")
8, chứa các mô -đun, kèm theo một tệp (có thể trống) được gọi là
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
6

Ví dụ:

Nếu tôi có một thư mục:

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

from <packagename> import module_2

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

import sys
sys.path.insert(0, "/home/myname/pythonfiles")
0 bằng cách:

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")
8, chứa các mô -đun, kèm theo một tệp (có thể trống) được gọi là
import sys
sys.path.insert(0, "/path/to/your/package_or_module")
6

export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add

Để nhập từ gói (thư mục) được gọi là

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

Thêm thư mục vào

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

import packagename.subfolder.module_3

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

import module_1
0 của bạn.

Thư mục con

Từ trong một gói, các thư mục con không được bao gồm như thế; Bạn cần phải "chuỗi" các thư mục. Để nhập mô -đun

import module_1
1, thư mục bên trong thư mục bên trong
import module_1
3:

Example:

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")
6 của riêng chúng.

import module

Tôi biết chủ đề này hơi cũ, nhưng tôi đã mất một thời gian để đi đến trung tâm của điều này, vì vậy tôi muốn chia sẻ.

Trong dự án của mình, tôi đã có tập lệnh chính trong thư mục cha và để phân biệt các mô-đun, tôi đặt tất cả các mô-đun hỗ trợ trong một bộ lọc phụ gọi là "mô-đun". Trong tập lệnh chính của tôi, tôi nhập các mô -đun này như thế này (đối với một mô -đun có tên là Báo cáo.py):

from modules.report import report, reportError

Nếu tôi gọi kịch bản chính của mình, điều này hoạt động. Tuy nhiên, tôi muốn kiểm tra từng mô -đun bằng cách bao gồm một

import module_1
7 trong mỗi mô -đun và gọi trực tiếp, như:

python modules/report.py

Bây giờ Python phàn nàn rằng nó không thể tìm thấy "một mô -đun gọi là mô -đun". Điều quan trọng ở đây là, theo mặc định, Python bao gồm thư mục của tập lệnh trong đường dẫn tìm kiếm của nó, nhưng không phải là CWD. Vì vậy, những gì lỗi này nói, thực sự, là "Tôi không thể tìm thấy một thư mục con mô -đun". IS vì không có thư mục con "mô -đun" từ thư mục trong đó mô -đun báo cáo.py nằm.

Tôi thấy rằng giải pháp gọn gàng nhất cho việc này là nối CWD trong đường dẫn tìm kiếm Python bằng cách bao gồm điều này ở đầu:

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

Bây giờ Python tìm kiếm CWD (thư mục hiện tại), tìm thấy phần phụ "mô-đun" và tất cả đều tốt.

Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu cách đường dẫn tìm kiếm mô -đun hoạt động trong Python khi bạn nhập mô -đun vào một chương trình.: in this tutorial, you’ll learn how the module search path works in Python when you import a module into a program.

Giới thiệu về đường dẫn tìm kiếm mô -đun Python

Khi bạn nhập một mô -đun trong một chương trình:

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

Python sẽ tìm kiếm tệp

import module_1
6 từ các nguồn sau:

  • Thư mục hiện tại mà chương trình thực thi.
  • Một danh sách các thư mục được chỉ định trong biến môi trường PythonPath, nếu bạn đặt nó trước đó.
  • Một danh sách phụ thuộc vào cài đặt các thư mục mà bạn đã cấu hình khi bạn cài đặt Python.

Python lưu trữ đường dẫn tìm kiếm kết quả trong biến

import module_1
9 xuất phát từ mô -đun
from <packagename> import module_2
0.

Chương trình sau đây hiển thị đường dẫn tìm kiếm mô -đun hiện tại:

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

Ở đây, một đầu ra mẫu trên Windows:

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

Và sau đây là đầu ra mẫu trên Linux:

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

Để đảm bảo Python luôn có thể tìm thấy

import module_1
6, bạn cần phải:

  • Đặt
    import module_1
    
    6 vào thư mục nơi chương trình sẽ thực thi.
  • Bao gồm thư mục chứa
    import module_1
    
    6 trong biến môi trường
    from <packagename> import module_2
    
    4. Hoặc bạn có thể đặt
    import module_1
    
    6 vào một trong các thư mục có trong biến
    from <packagename> import module_2
    
    4.
  • Đặt
    import module_1
    
    6 vào một trong các thư mục phụ thuộc vào cài đặt.

Sửa đổi đường dẫn tìm kiếm mô -đun Python khi chạy

Python cho phép bạn sửa đổi đường dẫn tìm kiếm mô -đun khi chạy bằng cách sửa đổi biến

import module_1
9. Điều này cho phép bạn lưu trữ các tệp mô -đun trong bất kỳ thư mục nào bạn chọn.

import module_1
9 là một danh sách, bạn có thể nối một con đường tìm kiếm vào nó.

Ví dụ sau đây thêm

export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add
0 vào đường dẫn tìm kiếm và sử dụng mô -đun
export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add
1 được lưu trữ trong thư mục này:

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

Bản tóm tắt

  • Khi bạn nhập một mô -đun, Python sẽ tìm kiếm tệp mô -đun từ các thư mục được chỉ định trong biến
    import module_1
    
    9.
  • Python cho phép bạn sửa đổi đường dẫn tìm kiếm mô -đun bằng cách thay đổi, thêm và loại bỏ các phần tử khỏi biến
    import module_1
    
    9.

Bạn có thấy hướng dẫn này hữu ích không?

Đường dẫn gói Python của tôi ở đâu?

Câu trả lời của bạn..
Các thư mục gói trang web toàn cầu ("Dist-Packages") được liệt kê trong sys.path Khi bạn chạy: trang web Python -M.....
Thư mục Perthon Per Site Packages (PEP 370) là nơi Python cài đặt các gói cục bộ của bạn: Trang web Python -M-Trang web sử dụng ..

Bạn có thể nhập một gói trong Python không?

Chúng ta có thể nhập các mô -đun từ các gói bằng toán tử DOT (.).Bây giờ, nếu mô -đun này chứa một hàm có tên select_diffic Khoa (), chúng ta phải sử dụng tên đầy đủ để tham khảo nó.Bây giờ chúng ta có thể gọi trực tiếp chức năng này. operator. Now, if this module contains a function named select_difficulty() , we must use the full name to reference it. Now we can directly call this function.

Làm thế nào thêm pythonpath linux?

Nếu bạn đang sử dụng hương vị tiêu chuẩn của Linux, hãy mở Shell Bash và nhập cụm từ sau, Xuất đường dẫn = đường dẫn $:/usr/local/bin/python và nhấn enter.Nếu bạn có quyền truy cập vào shell sh hoặc ksh, thì hãy mở thiết bị đầu cuối và nhập các loại sau, đường dẫn = đường dẫn $:/usr/local/bin/python và nhấn enter.open up the bash shell and type the following phrase, export PATH=”$PATH:/usr/local/bin/python” and press Enter. If you have access to either sh or ksh shell, then open up the terminal and type the following, PATH=”$PATH:/usr/local/bin/python” and press Enter.