Lỗi Python Nhập khẩuError: Không có mô-đun có tên là


452

Python được cài đặt trong một thư mục cục bộ.

Cây thư mục của tôi trông như thế này:

(local directory)/site-packages/toolkit/interface.py

Mã của tôi ở đây:

(local directory)/site-packages/toolkit/examples/mountain.py

Để chạy ví dụ, tôi viết python mountain.pyvà trong mã tôi có:

from toolkit.interface import interface

Và tôi nhận được lỗi:

Traceback (most recent call last):
  File "mountain.py", line 28, in ?
    from toolkit.interface import interface
ImportError: No module named toolkit.interface

Tôi đã kiểm tra sys.pathvà ở đó tôi có thư mục /site-packages. Ngoài ra, tôi có tệp __init__.py.bintrong thư mục bộ công cụ để cho Python biết đây là gói. Tôi cũng có một __init__.py.bintrong thư mục ví dụ.

Tôi không biết tại sao Python không thể tìm thấy tệp khi nó nằm trong sys.path. Có ý kiến ​​gì không? Nó có thể là một vấn đề quyền? Tôi có cần một số quyền thực thi không?


3
Kiểm tra xem bạn đã đọc quyền cho tập tin đó từ python. Xem: stackoverflow.com/a/20999950/1657225
cSn

1
Hãy chắc chắn đánh dấu thư mục của bạn là "Tài nguyên gốc" để cho PyCharm biết đây là một gói.
emmmphd

Vấn đề trong trường hợp của tôi là không có sự cho phép đối với các mô-đun mới được cài đặt 755. Đó là bởi vì umasktrên máy là 0027do otherskhông có readquyền khiến cho mô-đun không được đọc. Thêm readquyền đã khắc phục vấn đề của tôi. Thật đáng để kiểm tra sự cho phép của thư mục đích sau khi cài đặt.
anu


có thể tên thư mục địa phương là interface (đã bị xung đột).
Benyamin Jafari

Câu trả lời:


267

Dựa trên nhận xét của bạn về bài đăng của orip, tôi đoán đây là những gì đã xảy ra:

  1. Bạn đã chỉnh sửa __init__.pytrên windows.
  2. Trình chỉnh sửa windows đã thêm một cái gì đó không in, có thể là trả về vận chuyển (cuối dòng trong Windows là CR / LF; trong unix nó chỉ là LF), hoặc có lẽ là CTRL-Z (cửa sổ cuối của tệp).
  3. Bạn đã sử dụng WinSCP để sao chép tệp vào hộp unix của bạn.
  4. WinSCP nghĩ: "Điều này có một cái gì đó không phải là văn bản cơ bản; tôi sẽ đặt một phần mở rộng .bin để chỉ ra dữ liệu nhị phân."
  5. Thiếu __init__.py(bây giờ được gọi __init__.py.bin) có nghĩa là python không hiểu bộ công cụ như một gói.
  6. Bạn tạo __init__.pytrong thư mục thích hợp và mọi thứ hoạt động ...?

50
Ngoài ra, python -c 'sys nhập khẩu; print sys.path 'help - đôi khi người dùng đã đặt các tệp trong một đường dẫn không được quét.
mikebabcock

1
Tôi đang sử dụng điều tương tự ngoại trừ WinSCP không nối thêm .bin.
người dùng

9
nếu tôi có một "__init__ phút" trống thì điều tương tự có xảy ra không?
dietbacon

2
OMG, bạn cai trị! Đây là câu chuyện của tôi: 1. Bạn đã chỉnh sửa init .py trên windows 2. Nó đã thêm TAB thay vì dấu cách 3. Bạn google rất nhiều cho đến khi tìm thấy bài đăng này! ;)
GBrian

1
Đối với tôi, vấn đề là tôi đã sử dụng python driver.pykhi tôi nên sử dụng python3 driver.pykể từ khi tôi cài đặt pip3.
Eric Wiener

72

Làm

(local directory)/site-packages/toolkit

có một __init__.py?

Để thực hiện nhập khẩu đi qua thư mục của bạn mỗi thư mục phải có một __init__.pytập tin.


1
Điểm tốt! Ghi chú: Kể từ Python 3.3, mọi thư mục trên sys.path có tên khớp với tên gói sẽ được nhận ra.
PatrickT

1
Điều này không chỉ cần thiết cho các tham chiếu đường dẫn tương đối? tại sao phải mỗi thư mục có nó?
Sonic Soul

56

Tôi đã gặp một cái gì đó rất giống khi tôi thực hiện bài tập này trong LPTHW; Tôi không bao giờ có thể khiến Python nhận ra rằng tôi có các tệp trong thư mục mà tôi đang gọi từ đó. Nhưng tôi đã có thể làm cho nó hoạt động cuối cùng. Những gì tôi đã làm, và những gì tôi khuyên, là thử điều này:

(LƯU Ý: Từ bài đăng ban đầu của bạn, tôi giả sử bạn đang sử dụng máy dựa trên * NIX và đang chạy mọi thứ từ dòng lệnh, vì vậy lời khuyên này phù hợp với điều đó. Vì tôi chạy Ubuntu, đây là những gì tôi đã làm)

1) Thay đổi thư mục (cd) thành thư mục phía trên thư mục chứa các tệp của bạn. Trong trường hợp này, bạn đang cố chạy mountain.pytệp và cố gắng gọi toolkit.interface.pymô-đun nằm trong các thư mục riêng biệt. Trong trường hợp này, bạn sẽ đi đến thư mục chứa các đường dẫn đến cả hai tệp đó (hay nói cách khác, thư mục gần nhất mà đường dẫn của cả hai tệp đó chia sẻ). Mà trong trường hợp này là toolkitthư mục.

2) Khi bạn đang ở trong tookitthư mục, hãy nhập dòng mã này trên dòng lệnh của bạn:

export PYTHONPATH=.

Điều này đặt PYTHONPATH của bạn thành ".", Về cơ bản có nghĩa là PYTHONPATH của bạn sẽ tìm kiếm bất kỳ tệp được gọi nào trong thư mục bạn hiện đang ở, (và hơn thế nữa, trong các nhánh thư mục con của thư mục bạn đang ở. Vì vậy, nó không chỉ tìm trong thư mục hiện tại của bạn, mà trong tất cả các thư mục trong thư mục hiện tại của bạn).

3) Sau khi bạn đặt PYTHONPATH ở bước trên, hãy chạy mô-đun của bạn từ thư mục hiện tại ( toolkitthư mục). Python bây giờ sẽ tìm và tải các mô-đun bạn đã chỉ định.

Hi vọng điêu nay co ich. Tôi đã khá thất vọng với điều này bản thân mình.


2
Hoặc trên Windows set PYTHONPATH=..
cjbarth

Điều này làm việc cho tôi. Ngoài ra HOÀN TOÀN đơn giản hóa sự thất vọng PYTHONPATH của tôi, vì tôi phải cập nhật nó thành một đường dẫn tuyệt đối mỗi khi tôi chuyển đổi máy. Cảm ơn bạn, cảm ơn bạn, cảm ơn bạn.
the_e

41

Trên * nix, cũng đảm bảo rằng PYTHONPATH được cấu hình đúng, đặc biệt là nó có định dạng này:

 .:/usr/local/lib/python

(Hãy nhớ .:ngay từ đầu, để nó cũng có thể tìm kiếm trên thư mục hiện tại.)

Nó cũng có thể ở các địa điểm khác, tùy thuộc vào phiên bản:

 .:/usr/lib/python
 .:/usr/lib/python2.6
 .:/usr/lib/python2.7 and etc.

6
Nó cũng có thể được .:/usr/lib/python, .:/usr/lib/python2.6, .:/usr/lib/python2.7và vv tùy theo phiên bản
Nikita Volkov

Đối với tôi, mô-đun nằm trong /usr/local/lib/python3.4/dist-packages nhưng khi tôi nhập python3 trong thiết bị đầu cuối (ubfox) và cố gắng nhập nó, nó không cho phép tôi nói rằng nó không tồn tại. "ImportError: không có mô-đun x tồn tại"
user65165

Thêm #!/usr/bin/pythonvào cuối một tập tin cũng nên làm việc, phải không?
Nearoo

1
@Nearoo Tôi không nghĩ rằng nó sẽ hoạt động. Cộng với thường thì shebang này được thêm vào đầu tập tin.
Đổi mới

2
Trên MacOSX đã sửa nó bằng cách thêm PYTHONPATH = / usr / local / lib / python2.7 / site-gói vào các tập lệnh khởi động.
Johan Snowgoose

23

Tôi đã giải quyết vấn đề của riêng mình và tôi sẽ viết một bản tóm tắt về những điều sai và giải pháp:

Các tập tin cần phải được gọi chính xác __init__.py. Nếu phần mở rộng khác nhau như trong trường hợp của tôi .py.binthì Python không thể di chuyển qua các thư mục và sau đó nó không thể tìm thấy các mô-đun. Để chỉnh sửa các tệp bạn cần sử dụng trình soạn thảo Linux, chẳng hạn như vi hoặc nano . Nếu bạn sử dụng trình soạn thảo Windows, nó sẽ viết một số ký tự ẩn.

Một vấn đề khác ảnh hưởng đến nó là tôi đã cài đặt phiên bản Python khác bởi root, vì vậy nếu ai đó đang làm việc với bản cài đặt python cục bộ, hãy chắc chắn rằng bản cài đặt Python đang chạy chương trình là Python cục bộ. Để kiểm tra điều này, chỉ cần làm which pythonvà xem nếu thực thi là một trong thư mục địa phương của bạn. Nếu không, thay đổi đường dẫn, nhưng hãy chắc chắn rằng thư mục Python cục bộ nằm trước so với Python khác.


Một vấn đề tôi gặp phải là một mô-đun đã được cài đặt lại bởi pip chỉ có người dùng root để truy cập nó, vì vậy người dùng chạy chương trình không nhìn thấy nó.
Jāni Elmeris

@ JānisElmeris bạn có thể giải thích rõ hơn về nhận xét trên, tôi nghĩ tôi cũng đang đối mặt với một lỗi tương tự. Tôi có __init__.pycác tập tin của tôi được đặt trong thư mục có liên quan nhưng tôi đã tự cài đặt một gói bằng cách sử dụng setup.py. Làm thế nào để cài đặt một gói mới sẽ can thiệp nhập khẩu.
Krishna Oza

@darth_coder, xin lỗi, đó là sáu năm trước và tôi không nhớ trường hợp này. Ngoài ra, tôi đang làm việc với Python rất ít, gần đây không phải vậy. Từ những gì tôi đã viết, tôi chỉ có thể nghĩ rằng tôi đã cài đặt một gói dưới dạng root, điều này đã thay đổi các quyền để những người dùng khác không có quyền truy cập mà họ có trước đây.
Jāni Elmeris

19

một giải pháp dễ dàng là cài đặt mô-đun bằng cách sử dụng python -m pip install <library-name>thay vì pip install <library-name> bạn có thể sử dụng sudo trong trường hợp hạn chế của quản trị viên


2
Những gì không python -mđạt được ở phía trước pip install?
sporc

1
@sporc - khi bạn sử dụng cờ dòng lệnh -m, Python sẽ nhập mô-đun hoặc gói cho bạn và sau đó chạy nó dưới dạng tập lệnh. Khi bạn không sử dụng cờ -m, tệp bạn đặt tên sẽ chạy như một tập lệnh.
Tony Ciccarone 30/03/18

Không chắc câu trả lời này đang cố nói wrt hoạt python -m pip...động như thế nào, nhưng pip...không: chúng thực sự giống nhau, giả sử chúng thực sự nằm trong cùng một pythonthư mục. Có thể, tình huống quan sát được là pipchương trình độc lập không có sẵn trong một số bản phát hành trăn cũ hơn (nhưng hiện tại nó đã có bản 2.7 & 3.x mới nhất). Trong trường hợp đó, nó pythonđã ở trong một virtualenv cục bộ và pipkhông có, vì vậy python -m pip installsẽ cài đặt trong virtualenv cục bộ, trong khi đó pipsẽ cố gắng cài đặt trong python hệ thống (và không thành công với sudo). Trong mọi trường hợp, nó không có ý nghĩa.
michael

17

Để đánh dấu một thư mục là một gói bạn cần một tệp có tên __init__.py, điều này có giúp gì không?


Tôi đã có một tệp có tên init .py.bin, Nếu tôi đổi tên thành init .py, thì tôi gặp lỗi này: /__init__.py ", dòng 1" tiện ích "," demo "] ^ Cú pháp không hợp lệ
Eduardo

Có gì trong init .py? Gửi rằng đó là một phần của câu hỏi của bạn, xin vui lòng.
S.Lott

Không có gì, nó trống rỗng, Đó là với gói mà tôi tải xuống, tôi có cần phải viết một cái gì đó trong tập tin không?.
Eduardo

@ S.Lott: bạn không cần đặt bất cứ thứ gì vào init .py của bạn phải không?
igorgue

1
@Eduardo. Init .py của bạn bị lỗi Và bạn nói nó trống rỗng. Điều đó thật khó để hòa giải. Và nó không thể được gọi là init .py.bin - Python sẽ bỏ qua tệp này. Thông thường, nó có thể không có gì trong đó.
S.Lott

16

Sử dụng PyCharm(một phần của bộ JetBrains), bạn cần xác định thư mục tập lệnh của mình là Nguồn:
Right Click > Mark Directory as > Sources Root


12

Bạn đang đọc câu trả lời này nói rằng bạn __init__.pyđang ở đúng nơi, bạn đã cài đặt tất cả các phụ thuộc và bạn vẫn đang nhận được ImportError.

Tôi đã phải đối mặt với một vấn đề tương tự ngoại trừ chương trình của tôi sẽ chạy tốt khi chạy bằng PyCharm nhưng lỗi ở trên khi tôi chạy nó từ thiết bị đầu cuối. Sau khi đào sâu hơn, tôi phát hiện ra rằng PYTHONPATHkhông có mục nào cho thư mục dự án. Vì vậy, tôi đặt PYTHONPATHcho mỗi câu lệnh Nhập hoạt động trên PyCharm nhưng không phải từ thiết bị đầu cuối :

export PYTHONPATH=$PYTHONPATH:`pwd`  (OR your project root directory)

Có một cách khác để làm điều này bằng cách sử dụng sys.pathnhư:

import sys
sys.path.insert(0,'<project directory>') OR
sys.path.append('<project directory>')

Bạn có thể sử dụng insert / append dựa trên thứ tự mà bạn muốn dự án của bạn được tìm kiếm.


12

Đối với tôi, đó là một cái gì đó thực sự ngu ngốc. Tôi đã cài đặt thư viện bằng cách sử dụng pip3 installnhưng đang chạy chương trình của tôi python program.pytrái ngược với python3 program.py.


1
Ồ Điều đó cũng làm việc cho tôi.
Nhà phát triển Java

1
Bạn đã cứu ngày của tôi.
Aymen

7

Vâng Bạn cần thư mục để chứa __init__.pytệp, đây là tệp khởi tạo gói. Ở đây, có một cái nhìn về điều này .

Các tệp __init__.py được yêu cầu để khiến Python coi các thư mục là các gói chứa; điều này được thực hiện để ngăn các thư mục có tên chung, chẳng hạn như chuỗi, vô tình che giấu các mô-đun hợp lệ xảy ra sau này trên đường dẫn tìm kiếm mô-đun. Trong trường hợp đơn giản nhất, __init__.py chỉ có thể là một tệp trống, nhưng nó cũng có thể thực thi mã khởi tạo cho gói hoặc đặt biến __all__, được mô tả sau.


6
  1. Bạn phải có tệp __ init__.py trong cùng thư mục chứa tệp bạn đang nhập.
  2. Bạn không thể cố gắng nhập một tệp có cùng tên và là một tệp từ 2 thư mục được định cấu hình trên PYTHONPATH.

ví dụ: / etc / môi trường

PYTHONPATH = $ PYTHONPATH: / opt / thư mục1: / opt / thư mục2

/ opt / thư mục1 / foo

/ opt / thư mục2 / foo

Và, nếu bạn đang cố gắng nhập tệp foo, python sẽ không biết bạn muốn cái nào.

từ nhập foo ... >>> importerror: không có mô-đun có tên foo


5

Theo quan điểm của tôi:

nhập mô tả hình ảnh ở đây

Nhổ:

Traceback (most recent call last):
      File "bash\bash.py", line 454, in main
        import bosh
      File "Wrye Bash Launcher.pyw", line 63, in load_module
        mod = imp.load_source(fullname,filename+ext,fp)
      File "bash\bosh.py", line 69, in <module>
        from game.oblivion.RecordGroups import MobWorlds, MobDials, MobICells, \
    ImportError: No module named RecordGroups

Điều này làm tôi bối rối - đã đi qua các bài đăng và bài viết gợi ý những vụ hack syspath xấu xí (như bạn thấy __init__.pytất cả đều ở đó). Vâng, hóa ra rằng trò chơi / oblivion.py và trò chơi / sự lãng quên là con trăn khó hiểu đã nhổ ra "Không có mô-đun tên là Recordgroup" khá vô ích. Tôi có hứng thú với cách giải quyết và / hoặc liên kết ghi lại hành vi (cùng tên) này -> EDIT (2017.01.24) - hãy xem Điều gì xảy ra nếu tôi có Mô-đun và Gói có cùng tên? Các gói thông thường thú vị được ưu tiên nhưng dường như launcher của chúng tôi vi phạm điều này.

EDIT (2015.01.17): Tôi không đề cập đến việc chúng tôi sử dụng trình khởi chạy tùy chỉnh được mổ xẻ ở đây .


giống như con đường tắt game.oblivion.RecordGroups !== game/oblivion/patchers/RecordGroups.py Có thể muốn khắc phục điều đó bằng cách nối thêm mã python của bạn để sử dụng:game.oblivion.patchers.RecordGroups
Dwight Spencer

@DwightSpencer: Tôi chắc chắn tôi đã nhập "Recordgroup" game.oblivion.__init__.pynhưng có thể phải kiểm tra điều này
Mr_and_Mrs_D

4

Linux: Các mô-đun nhập khẩu được đặt trong /usr/local/lib/python2.7/dist-packages

Nếu bạn đang sử dụng một mô-đun được biên dịch bằng C, đừng quên chỉnh sửa tệp .so sau sudo setup.py install.

sudo chmod 755 /usr/local/lib/python2.7/dist-packages/*.so

3

Trong trường hợp của tôi, vấn đề là tôi đã liên kết với gỡ lỗi python & boost::Python, điều này đòi hỏi phần mở rộng phải FooLib_d.pyd, không chỉ FooLib.pyd; đổi tên tập tin hoặc cập nhật CMakeLists.txtthuộc tính đã sửa lỗi.


3

Nếu bạn đã thử tất cả các phương pháp được cung cấp ở trên nhưng không thành công, có thể mô-đun của bạn có cùng tên với mô-đun tích hợp. Hoặc, một mô-đun có cùng tên hiện có trong một thư mục có mức độ ưu tiên cao sys.pathhơn mô-đun của bạn.

Để gỡ lỗi, nói from foo.bar import bazkhiếu nại của bạn ImportError: No module named bar. Thay đổi thành import foo; print foo, sẽ hiển thị đường dẫn của foo. Đó có phải là những gì bạn mong đợi?

Nếu không, hoặc đổi tên foohoặc sử dụng nhập tuyệt đối .


1
Đối với tôi, điều này mang lại ImportError: No module named foo.
alex

3

Vấn đề của tôi là tôi đã thêm thư mục chứa __init__.pytệp vào PYTHONPATH, khi thực sự tôi cần thêm thư mục mẹ của nó.


3

Để tất cả những người vẫn còn vấn đề này. Tôi tin rằng Pycharm bị nhầm lẫn với hàng nhập khẩu. Đối với tôi, khi tôi viết 'từ không gian tên nhập một cái gì đó', dòng trước đó được gạch chân màu đỏ, báo hiệu rằng có lỗi, nhưng hoạt động. Tuy nhiên '' từ .namespace nhập một cái gì đó 'không được gạch chân, nhưng cũng không hoạt động.

Thử

try:
    from namespace import something 
except NameError:
    from .namespace import something

1
Cú pháp đầu tiên là python 2, lần thứ hai là python 3.
Tanya Branagan

2

Đã khắc phục sự cố của tôi bằng cách viết print (sys.path)và phát hiện ra rằng python đã sử dụng các gói hết hạn mặc dù đã cài đặt sạch. Xóa những python đã làm tự động sử dụng các gói chính xác.


2

Trong trường hợp của tôi, vì tôi đang sử dụng PyCharm và PyCharm tạo ra một 'venv' cho mọi dự án trong thư mục dự án, nhưng nó chỉ là một env nhỏ của python. Mặc dù bạn đã cài đặt các thư viện bạn cần trong Python, nhưng trong dự án tùy chỉnh 'venv', nó không có sẵn. Đây là lý do thực sự của 'ImportError: Không có mô-đun có tên xxxxxx' xảy ra trong PyCharm. Để giải quyết vấn đề này, bạn phải thêm thư viện vào env tùy chỉnh dự án của mình theo các bước sau:

  • Trong PyCharm, từ menu 'Tệp' -> Cài đặt
  • Trong hộp thoại Cài đặt, Project: XXXProject-> Project Interpreter
  • Nhấp vào nút "Thêm", nó sẽ hiển thị cho bạn hộp thoại 'Gói có sẵn'
  • Tìm kiếm thư viện của bạn, nhấp vào 'Cài đặt gói'
  • Sau đó, tất cả các gói bạn cần sẽ được cài đặt trong thư mục 'venv' tùy chỉnh của bạn.

Hộp thoại cài đặt

Thưởng thức.


0

Sau khi gặp vấn đề tương tự, tôi thấy giải pháp của mình là xóa tất cả pyc các tệp khỏi dự án của mình, có vẻ như các tệp được lưu trong bộ nhớ cache này đã gây ra lỗi này.

Cách dễ nhất tôi tìm thấy để làm điều này là điều hướng đến thư mục dự án của tôi trong Windows explorer và tìm kiếm *.pyc, sau đó chọn tất cả ( Ctrl+ A) và xóa chúng ( Ctrl+X ).

Có thể tôi đã giải quyết được vấn đề của mình bằng cách xóa pyctệp cụ thể nhưng tôi chưa bao giờ thử điều này


0

Tôi phải đối mặt với cùng một vấn đề : Import error. Ngoài ra, thư viện đã được cài đặt chính xác 100%. Nguồn gốc của vấn đề là trên phiên bản PC 3 của python (gói anaconda) đã được cài đặt). Đây là lý do tại sao thư viện đã được cài đặt không đến đúng nơi. Sau đó tôi mới đổi thành phiên bản thích hợp của python trong IDE PyCharm của tôi.


0

Tôi đã có những lỗi giống nhau. Nguyên nhân là do ai đó tạo thư mục trong cùng thư mục với tập lệnh của tôi, tên của nó bị xung đột với mô-đun tôi đang nhập từ nơi khác. Thay vì nhập mô-đun bên ngoài, nó nhìn vào bên trong thư mục này rõ ràng không chứa các mô-đun dự kiến.


0

Tôi gặp vấn đề tương tự (Python 2.7 Linux), tôi đã tìm ra giải pháp và tôi muốn chia sẻ nó. Trong trường hợp của tôi, tôi đã có cấu trúc dưới đây:

Booklet
-> __init__.py
-> Booklet.py
-> Question.py
default
-> __init_.py
-> main.py

Trong 'main.py' tôi đã thử không thành công tất cả các kết hợp dưới đây:

from Booklet import Question
from Question import Question
from Booklet.Question import Question
from Booklet.Question import *
import Booklet.Question
# and many othet various combinations ...

Giải pháp đơn giản hơn nhiều so với tôi nghĩ. Tôi đã đổi tên thư mục "Tập sách" thành "tập sách" và thế là xong. Bây giờ Python có thể nhập câu hỏi lớp một cách bình thường bằng cách sử dụng mã trong 'main.py':

from booklet.Booklet import Booklet
from booklet.Question import Question
from booklet.Question import AnotherClass

Từ điều này, tôi có thể kết luận rằng Tên gói (thư mục) như 'tập sách' phải bắt đầu từ chữ thường, Python khác nhầm lẫn với tên lớp và tên tệp.

Rõ ràng, đây không phải là vấn đề của bạn, mà là của John Fouhy câu trả lời là rất tốt và chủ đề này có hầu hết mọi thứ có thể gây ra vấn đề này. Vì vậy, đây là một điều nữa và tôi hy vọng rằng có lẽ điều này có thể giúp đỡ người khác.


0

Trong trường hợp của tôi, tôi đã bao gồm đường dẫn đến thư mục pack.egg chứ không phải gói thực tế bên dưới. Tôi đã sao chép gói lên cấp cao nhất và nó hoạt động.


0

Điều này làm việc cho tôi: Tạo __init__.pytập tin trong thư mục mẹ (trong trường hợp của bạn, bên trong site-packagesthư mục). Và nhập khẩu như thế này:

from site-packages.toolkit.interface import interface

Hy vọng nó sẽ hữu ích cho bạn là tốt!


0

Trong máy chủ linux hãy thử dos2unix script_name

(xóa tất cả (nếu có) pyccác tệp bằng lệnh find . -name '*.pyc' -delete)

và chạy lại trong trường hợp nếu bạn làm việc trên script trên windows


0

Trong trường hợp của tôi, tôi đã sử dụng sys.path.insert()để nhập một mô-đun cục bộ và nhận được module not foundtừ một thư viện khác. Tôi đã phải đặt sys.path.insert()dưới mức nhập khẩu báo cáo module not found. Tôi đoán cách thực hành tốt nhất là đặt sys.path.insert()ở dưới cùng của hàng nhập khẩu của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.