Tôi đang thử nghiệm với python, chủ yếu là khắc phục sự cố mã của người khác. Tôi đang cố gắng để có được một chương trình để chạy, "path\folderA\program.py
".Không nhập khẩu python từ một thư mục khác
Tôi đang chạy chương trình từ path\folderA
Tôi nhận được một lỗi:
ImportError: No module named fff.ggg.ppp
program.py chứa một nhập khẩu:
from fff.ggg.ppp import mmm
Trong thư mục "path \ folderB" có: "path\folderB\fff\__init__.py
" "path\folderB\fff\ggg
"
thư mục ggg
cũng chứa __init__.py
, cũng như chương trình ppp.py
Từ đọc bài viết khác, như Python error "ImportError: No module named" Tôi hiểu rằng có __init__.py
tạo ra một thư mục một "gói" mà làm cho hàng nhập khẩu từ nó có thể - nhưng nó doesn' làm việc, kể từ khi tôi nhận được một lỗi.
Điều này đã hoạt động đối với những người khác đã làm việc với các dự án này, vì vậy có sự cố với thiết lập của tôi.
Tôi đã đọc điều gì đó về các thư mục phải nằm trong sys.path. Điều đó có nghĩa là tôi phải thêm chúng vào đường dẫn biến môi trường? Điều đó có nghĩa là thêm rất nhiều thư mục vào PATH mặc dù, do đó, nó không thể được.
Vì vậy, tôi cũng thấy như sau:
import sys
sys.path.append(<path to FolderB>)
Nhưng điều đó có nghĩa là thay đổi mã (mà vẫn chưa cần thiết cho những người khác) và hard-coding một đường dẫn đến những gì nó là trên máy tính địa phương của tôi - mà Tôi không nên, phải không?
Tôi không thể hình dung được - dường như tôi không phải thay đổi mã và mã cứng đường dẫn vật lý vào mô-đun nhập - vậy làm cách nào để chương trình từ thư mục có thể biết tìm trong thư mục B để nhập?
Phép thuật __init__.py
hoạt động như thế nào?
Python tìm biến môi trường 'PYTHONPATH', không phải' PATH' – mgilson