Thay đổi đường dẫn sys trong python

\[\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. đường dẫn"

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 kiếm thư mục
def func[]:
    print["Running useful function"]
3 trong thư mục làm việc hiện tại

Đường dẫn sys trong Python là gì?

sys. đường dẫn là một biến tích hợp trong mô-đun sys . Nó chứa một danh sách các thư mục mà trình thông dịch sẽ tìm kiếm mô-đun được yêu cầu. Khi một mô-đun [mô-đun là tệp python] được nhập trong tệp Python, trước tiên, trình thông dịch sẽ tìm kiếm mô-đun đã chỉ định trong số các mô-đun tích hợp của nó.

Python khởi tạo đường dẫn SYS như thế nào?

Đường dẫn tìm kiếm mô-đun được khởi tạo khi Python bắt đầu . Đường dẫn tìm kiếm mô-đun này có thể được truy cập tại sys. đường dẫn. Mục đầu tiên trong đường dẫn tìm kiếm mô-đun là thư mục chứa tập lệnh đầu vào, nếu có.

Làm cách nào để đặt đường dẫn Python trong tập lệnh?

Để làm cho tập lệnh Python có thể chạy được từ bất kỳ vị trí nào trong Windows. .
Tạo thư mục để đặt tất cả các tập lệnh python của bạn vào. .
Sao chép tất cả các tập lệnh python của bạn vào thư mục này
Thêm đường dẫn đến thư mục này trong biến hệ thống "PATH" của Windows. .
Chạy hoặc khởi động lại "Anaconda Prompt"
Nhập "your_script_name. py"

SYS có được cài đặt trong Python không?

Mô-đun sys đi kèm với Python , nghĩa là bạn không cần tải xuống và cài đặt riêng mô-đun này bằng trình quản lý gói PIP.

Chủ Đề