Sys.Path là một danh sách các thư mục trong đó phiên dịch viên Python tìm kiếm các mô -đun. Tâm trí bạn, đây là một danh sách! Khi một mô -đun được yêu cầu trong một tệp dự án, nó sẽ tìm kiếm thông qua từng một trong các thư mục trong danh sách. Nếu mô -đun được đặt trong một trong các thư mục đó, thì mọi thứ đều ổn và dự án của bạn được hiển thị thành công. Tuy nhiên, nếu mô -đun không nằm trong bất kỳ thư mục được liệt kê nào, thì dự án của bạn sẽ không thể tham gia vào thư mục của bạn trong đó mô -đun của bạn được đặt vào danh sách bằng cách sử dụng hàm append []. Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về cách sử dụng sys.path.append [] trong Python. Bằng cách khai báo những điều sau đây, chúng ta có thể kiểm tra đường dẫn Python hiện tại: Nhập khẩu sys Frompprintimportpprint pprint import pprint
pprint[sys.path][sys.path] Ở đây, mô -đun Pprint chỉ được sử dụng để làm cho mọi thứ trông đẹp, vì vậy bạn có thể bỏ qua phần đó và tập trung vào phần còn lại. Tất cả những gì chúng tôi đang cố gắng làm ở đây là in ra sys.path. Đây là những gì chúng tôi nhận được:Liệt kê đường dẫn hiện tại
Những gì bạn nhận thấy ở đây là trước hết, nó là một danh sách. Vì vậy, theo danh sách, trước tiên nó sẽ xem xét trong thư mục làm việc hiện tại, sau đó trong các thư mục khác từng người một. Thư mục làm việc hiện tại là thư mục trong đó tập lệnh Python chính - đoạn được thực hiện - được tìm thấy. Hơn nữa, điều này cũng có nghĩa là danh sách này có thể được sửa đổi hoặc chỉnh sửa.
Thêm một đường dẫn
Phương thức sys.path.append [] được sử dụng cụ thể để thêm một đường dẫn đến các đường dẫn hiện có.
Giả sử bây giờ tôi có hai tệp riêng biệt: main.py và file1.py. Main.py là tệp chính và chúng tôi sẽ cố gắng nhập File1.py [một mô -đun mà chúng tôi đã viết].
Nhập tệp1 file1 print[file1.secret][file1.secret] | bí mật = "Đây là cụm từ bí mật"= “This is the secret phrase” |
Vì File1.py hoặc mô -đun của chúng tôi nằm trong thư mục làm việc, bạn sẽ có thể in thành công câu bí mật. Điều này là như vậy bởi vì khi trình thông dịch Python tìm kiếm mô -đun được yêu cầu, nó sẽ tìm kiếm trong thư mục làm việc trước và vì mô -đun của chúng tôi có tên File1 nằm trong thư mục làm việc, nó sẽ tự động in ra câu bí mật của chúng tôi.
Bây giờ, giả sử rằng tôi tạo một thư mục trong thư mục làm việc của mình có tên là Thư mục1 và đặt mô -đun của tôi có tên File1 trong đó.
Bây giờ, trong mô -đun File1 là cụm từ bí mật mà chúng tôi đang cố gắng in ra. Trong trường hợp này, nó sẽ không in ra cụm từ bí mật. Tại sao? Bởi vì thông dịch viên đang tìm kiếm trong thư mục trực tuyến1 cho bất kỳ mô -đun nào. Nói cách khác, thư mục làm việc hiện tại là một thành viên của danh sách sys.path nhưng thư mục1, không phải là thành viên của danh sách đó. Vì vậy, lỗi kết quả là lỗi mô -đun - nó không thể tìm thấy hoặc xác định vị trí mô -đun có tên File1.
Để ngăn chặn vấn đề này, bạn cần nói với trình thông dịch Python nơi tìm File1 mô -đun. Đây là nơi phương thức sys.path.append [] xuất hiện.
Phương thức sys.path.append [] được sử dụng để nối đường dẫn mà chúng tôi muốn vào danh sách hiện có.
Trên hệ thống Linux:
sys.path.Append [Hồi/path/to/drv]].path.append[“/path/to/dir”]
Trên hệ thống Windows, bạn đã viết:
sys.path.append [Hồi C: \\ path \\ to \\ dir,].path.append[“C:\\path\\to\\dir”]
Xin lưu ý rằng bạn không thể thêm bất kỳ tệp đã cho vào sys.Path, thay vào đó bạn có thể thêm các thư mục và sau đó nhập các tệp bạn muốn.
Ví dụ 1
Vì vậy, hãy để thử thử hoạt động trước đó [trong đó mô -đun File1 được đặt trong thư mục1] nhưng lần này, chúng tôi sẽ nối đường dẫn đến mô -đun File1 vào sys.Path bằng phương thức sys.Path.Append [].
Nhập khẩu sys Frompprintimportpprint.path.append[‘C:\\Users\\never\\PycharmProjects\\ Ở đây, mô -đun Pprint chỉ được sử dụng để làm cho mọi thứ trông đẹp, vì vậy bạn có thể bỏ qua phần đó và tập trung vào phần còn lại. Tất cả những gì chúng tôi đang cố gắng làm ở đây là in ra sys.path.] Nhập tệp1 file1 print[file1.secret][file1.secret] | bí mật = "Đây là cụm từ bí mật"= “This is the secret phrase” |
Vì File1.py hoặc mô -đun của chúng tôi nằm trong thư mục làm việc, bạn sẽ có thể in thành công câu bí mật. Điều này là như vậy bởi vì khi trình thông dịch Python tìm kiếm mô -đun được yêu cầu, nó sẽ tìm kiếm trong thư mục làm việc trước và vì mô -đun của chúng tôi có tên File1 nằm trong thư mục làm việc, nó sẽ tự động in ra câu bí mật của chúng tôi.
Bây giờ, giả sử rằng tôi tạo một thư mục trong thư mục làm việc của mình có tên là Thư mục1 và đặt mô -đun của tôi có tên File1 trong đó.
Bây giờ, trong mô -đun File1 là cụm từ bí mật mà chúng tôi đang cố gắng in ra. Trong trường hợp này, nó sẽ không in ra cụm từ bí mật. Tại sao? Bởi vì thông dịch viên đang tìm kiếm trong thư mục trực tuyến1 cho bất kỳ mô -đun nào. Nói cách khác, thư mục làm việc hiện tại là một thành viên của danh sách sys.path nhưng thư mục1, không phải là thành viên của danh sách đó. Vì vậy, lỗi kết quả là lỗi mô -đun - nó không thể tìm thấy hoặc xác định vị trí mô -đun có tên File1.
Để ngăn chặn vấn đề này, bạn cần nói với trình thông dịch Python nơi tìm File1 mô -đun. Đây là nơi phương thức sys.path.append [] xuất hiện.
Nhập khẩu sys Frompprintimportpprint pprint import pprint pprint[sys.path][sys.path] |
Ở đây, mô -đun Pprint chỉ được sử dụng để làm cho mọi thứ trông đẹp, vì vậy bạn có thể bỏ qua phần đó và tập trung vào phần còn lại. Tất cả những gì chúng tôi đang cố gắng làm ở đây là in ra sys.path.
Đây là những gì chúng tôi nhận được:
Nhập khẩu sys Frompprintimportpprint pprint import pprint Ở đây, mô -đun Pprint chỉ được sử dụng để làm cho mọi thứ trông đẹp, vì vậy bạn có thể bỏ qua phần đó và tập trung vào phần còn lại. Tất cả những gì chúng tôi đang cố gắng làm ở đây là in ra sys.path..path.append[‘/home/kalyani/directory1’] pprint[sys.path][sys.path] |
Đây là những gì chúng tôi nhận được:
Pythonpath
Có một vấn đề nhỏ bé với những gì chúng tôi vừa làm và đó là chúng tôi đã không đặt vị trí đó vĩnh viễn vào danh sách sys.path. Phương thức sys.path.append [] được sử dụng để tạm thời thêm một đường dẫn và như vậy, đường dẫn đó sẽ có giá trị cho một phiên chẳng hạn. Nếu bạn muốn thay đổi vĩnh viễn danh sách sys.path, thì chúng ta có thể sử dụng PythonPath để thêm đường dẫn vào danh sách. Vì Sys.Path cũng xem xét Pythonpath, các vị trí được liệt kê sau đó sẽ được đưa vào danh sách các đường dẫn.
Trên Linux:
xuất PythonPath = xông/path/to/dir=’/path/to/dir’
- Trên máy Linux của bạn, mở một thiết bị đầu cuối và điều hướng đến thư mục chứa .bashrc.
- Nano .Bashrc
- Thêm các mục sau ở cuối tệp .bashrc:
Xuất Pythonpath = xông/home/kalyani/thư mục1=’/home/kalyani/directory1’
Ở đây, bạn có thể thêm đường dẫn mà bạn muốn.
- Đóng thiết bị đầu cuối và mở một thiết bị đầu cuối mới
- Bây giờ, hãy thử thực hiện chương trình của bạn. Trong trường hợp của tôi, nó sẽ là như sau:
Nhập khẩu sys Frompprintimportpprint pprint import pprint pprint[sys.path][sys.path] |
Khi viết các chương trình phức tạp bằng Python, cuối cùng chúng tôi sẽ thêm các mô -đun của bên thứ ba hoặc thậm chí tốt hơn, hãy tạo các mô -đun của riêng chúng tôi. Trong mọi trường hợp, chúng tôi không thể giữ mọi tệp Python mà chúng tôi tạo trong một thư mục, chúng tôi có thể muốn sử dụng nhiều thư mục để phân loại đầy đủ các tệp của chúng tôi. Tuy nhiên, vấn đề là chúng tôi có thể cần nhập các mô -đun được tạo bên trái và phải. Trong những trường hợp như vậy, nếu chúng tôi muốn ngăn chặn lỗi ModulenotFound, thì chúng tôi có thể thêm vị trí của thư mục - và quan tâm đến bạn, nó phải là một thư mục, không phải là một tệp - vào sys.path sử dụng sys.path.append [ ] phương pháp.
Mã hóa hạnh phúc!
Thông tin về các Tác giả
Tôi là một người yêu thích linux và mã.