Hướng dẫn python sys path append relative path - đường dẫn sys python nối thêm đường dẫn tương đối
Vì vậy, có rất nhiều câu hỏi khá giống nhau nhưng không có câu trả lời nào để thỏa mãn những gì tôi đang tìm kiếm. Show
Về cơ bản tôi đang chạy một tập lệnh Python bằng một thư mục tuyệt đối trong dòng lệnh. Trong chính tệp này, tôi muốn nhập một mô -đun/tệp, hiện tôi hiện đang sử dụng một đường dẫn tuyệt đối để thực hiện điều này ( Làm thế nào để tôi làm điều này?
Đã hỏi ngày 21 tháng 1 năm 2014 lúc 13:08Jan 21, 2014 at 13:08
7 Hai khả năng thay thế dưới đây áp dụng cho cả phiên bản Python 2 và 3. Chọn cách bạn thích. Tất cả các trường hợp sử dụng được bảo hiểm. ví dụ 1
Thêm vào
Ví dụ 2
Thêm vào
Ví dụ 2
import sys, os sys.path.append(os.path.join(sys.path[0],'bar','sub','dir')) from mymodule import MyModule 1 di động hơn import sys, os sys.path.append(os.path.join(sys.path[0],'bar','sub','dir')) from mymodule import MyModule 2Xem thêm
trong Python 3Feb 7, 2016 at 21:13
Đã trả lời ngày 7 tháng 2 năm 2016 lúc 21:13oHo ohooho27 gold badges157 silver badges193 bronze badges 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) 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ã.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. Liệt kê đường dẫn hiện tại
Đây là những gì chúng tôi nhận được: 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 bí mật = "Đây là cụm từ bí mật".path.append(“/path/to/dir”) 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 đó..path.append(“C:\\path\\to\\dir”) 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ó.
Đây là những gì chúng tôi nhận được: Đầu ra của hoạt động trước đó như sau: Ví dụ #2Hãy cùng lấy một ví dụ khác, lần này là trên một máy Linux. Hãy giả sử rằng chúng ta có một tệp - main.py.
Ở đây, sys.path [0] là trên mạng/home/kalyani, vì đó là nơi đặt Main.py. Bây giờ, hãy để sửa đổi tập lệnh một chút bằng cách sử dụng phương thức sys.Path.append (). Hãy để sử dụng phương pháp để nối một đường dẫn cụ thể (‘/home/kalyani/thư mục1,) vào sys.path.
Bây giờ, hãy để sửa đổi tập lệnh một chút bằng cách sử dụng phương thức sys.Path.append (). Hãy để sử dụng phương pháp để nối một đường dẫn cụ thể (‘/home/kalyani/thư mục1,) vào sys.path. sys.path.append (‘/home/kalyani/thư mục1,)Vì vậy, phương thức sys.path.append () đã nối tiếp đường đến cuối danh sách hiện có! Ở đây, xin vui lòng lưu ý rằng việc nối tiếp được thực hiện ở cuối danh sách không ở đầu. 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.=’/path/to/dir’
Thêm các mục sau ở cuối tệp .bashrc:
Ở đây, sys.path [0] là trên mạng/home/kalyani, vì đó là nơi đặt Main.py. Bây giờ, hãy để sửa đổi tập lệnh một chút bằng cách sử dụng phương thức sys.Path.append (). Hãy để sử dụng phương pháp để nối một đường dẫn cụ thể (‘/home/kalyani/thư mục1,) vào sys.path. sys.path.append (‘/home/kalyani/thư mục1,)Vì vậy, phương thức sys.path.append () đã nối tiếp đường đến cuối danh sách hiện có! Ở đây, xin vui lòng lưu ý rằng việc nối tiếp được thực hiện ở cuối danh sách không ở đầu. |