Hướng dẫn why i cannot import module python? - tại sao tôi không thể nhập python mô-đun?

187

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang gặp khó khăn khi hiểu cách nhập mô -đun hoạt động trong Python (tôi chưa bao giờ thực hiện nó bằng bất kỳ ngôn ngữ nào khác trước đây).

Giả sử tôi có:

myapp/__init__.py
myapp/myapp/myapp.py
myapp/myapp/SomeObject.py
myapp/tests/TestCase.py

Bây giờ tôi đang cố gắng để có được một cái gì đó như thế này:

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject

Tuy nhiên, tôi chắc chắn đang làm điều gì đó sai vì Python không thể thấy rằng

ImportError: No module named myapp
1 là một mô -đun:

ImportError: No module named myapp

hỏi ngày 21 tháng 2 năm 2012 lúc 18:27Feb 21, 2012 at 18:27

1

Trong trường hợp cụ thể của bạn, có vẻ như bạn đang cố gắng nhập

ImportError: No module named myapp
2 từ các tập lệnh myApp.py và testcase.py. Từ myapp.py, làm

import SomeObject

Vì nó nằm trong cùng một thư mục. Cho testcase.py, làm

from ..myapp import SomeObject

Tuy nhiên, điều này sẽ chỉ hoạt động nếu bạn đang nhập TestCase từ gói. Nếu bạn muốn trực tiếp chạy

ImportError: No module named myapp
3, bạn sẽ phải gây rối với con đường của mình. Điều này có thể được thực hiện trong Python:

import sys
sys.path.append("..")
from myapp import SomeObject

mặc dù điều đó thường không được khuyến khích.

Nói chung, nếu bạn muốn người khác sử dụng gói Python của mình, bạn nên sử dụng Distutils để tạo tập lệnh thiết lập. Bằng cách đó, bất cứ ai cũng có thể cài đặt gói của bạn dễ dàng bằng một lệnh như

ImportError: No module named myapp
4 và nó sẽ có sẵn ở mọi nơi trên máy của họ. Nếu bạn nghiêm túc về gói, bạn thậm chí có thể thêm nó vào Chỉ số gói Python, PYPI.

Đã trả lời ngày 21 tháng 2 năm 2012 lúc 18:46Feb 21, 2012 at 18:46

Hướng dẫn why i cannot import module python? - tại sao tôi không thể nhập python mô-đun?

David Robinsondavid RobinsonDavid Robinson

75,7K15 Huy hiệu vàng162 Huy hiệu bạc180 Huy hiệu Đồng15 gold badges162 silver badges180 bronze badges

6

Hàm

ImportError: No module named myapp
5 tìm các tệp vào env pythonpath của bạn. Biến và thư mục địa phương của bạn. Vì vậy, bạn có thể đặt tất cả các tệp của mình vào cùng một thư mục hoặc xuất đường dẫn vào một thiết bị đầu cuối ::

export PYTHONPATH="$PYTHONPATH:/path_to_myapp/myapp/myapp/"

Michael

1.6872 Huy hiệu vàng19 Huy hiệu bạc 30 Huy hiệu Đồng2 gold badges19 silver badges30 bronze badges

Đã trả lời ngày 21 tháng 2 năm 2012 lúc 18:31Feb 21, 2012 at 18:31

ZenonzenonZenon

1.46313 Huy hiệu bạc20 Huy hiệu đồng13 silver badges20 bronze badges

4

Đường dẫn xuất khẩu là một cách tốt. Một cách khác là thêm một .pth vào vị trí gói trang web của bạn. Trên máy Mac của tôi, Python của tôi giữ các gói trang web trong /thư viện /python được hiển thị bên dưới

/Library/Python/2.7/site-packages

Tôi đã tạo một tệp có tên Awesome.pth at /l Library/opython/2.7/site-packages

/opt/awesome/custom_python_modules

Đã trả lời ngày 20 tháng 5 năm 2013 lúc 23:36May 20, 2013 at 23:36

JMontrossjMontrossjmontross

3,4551 Huy hiệu vàng20 Huy hiệu bạc17 Huy hiệu đồng1 gold badge20 silver badges17 bronze badges

4

Bạn co thể thử

from myapp.myapp import SomeObject

Bởi vì tên dự án của bạn giống như myApp.py khiến nó tìm kiếm tài liệu dự án trước

Đã trả lời ngày 6 tháng 3 năm 2017 lúc 13:54Mar 6, 2017 at 13:54

阿东 刘阿东阿东刘

1291 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges

Bạn cần phải có

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
0

Trong tất cả các thư mục có mã bạn cần tương tác. Bạn cũng cần chỉ định tên thư mục hàng đầu của dự án trong mỗi lần nhập ngay cả khi tệp bạn cố gắng nhập ở cùng cấp độ.

Đã trả lời ngày 5 tháng 6 năm 2020 lúc 15:42Jun 5, 2020 at 15:42

KrysaleadkrysaleadKrysalead

511 Huy hiệu bạc1 Huy hiệu đồng1 silver badge1 bronze badge

Trong thư mục myApp đầu tiên của bạn, bạn có thể thêm một tệp setup.py và thêm hai mã python vào setup.py

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
1

Trong thư mục MyApp đầu tiên của bạn trong CommandLine, hãy sử dụng PIP Install -e. Để cài đặt gói

Đã trả lời ngày 28 tháng 10 năm 2017 lúc 11:30Oct 28, 2017 at 11:30

Hướng dẫn why i cannot import module python? - tại sao tôi không thể nhập python mô-đun?

未来 陆家嘴 的 陆家嘴 顶尖 顶尖 的 的 投资人 投资人 投资人未来陆家嘴顶尖的投资人

1.68819 Huy hiệu bạc19 Huy hiệu đồng19 silver badges19 bronze badges

ImportError: No module named myapp
6 trên Windows 10 mặc định để cài đặt trong 'Tệp chương trình/pythonxx/lib/trang web trang web', một thư mục yêu cầu các đặc quyền quản trị. Vì vậy, tôi đã khắc phục sự cố của mình bằng cách chạy Cài đặt PIP với tư cách là Quản trị viên (bạn phải mở Dấu nhắc lệnh làm Quản trị viên ngay cả khi bạn đã đăng nhập bằng tài khoản quản trị viên). Ngoài ra, sẽ an toàn hơn khi gọi Pip từ Python. ví dụ.
ImportError: No module named myapp
7 thay vì
ImportError: No module named myapp
8running pip install as Administrator (you have to open command prompt as administrator even if you are logged in with an admin account). Also, it is safer to call pip from python.
e.g.
ImportError: No module named myapp
7
instead of
ImportError: No module named myapp
8

Đã trả lời ngày 21 tháng 8 năm 2018 lúc 9:12Aug 21, 2018 at 9:12

Hướng dẫn why i cannot import module python? - tại sao tôi không thể nhập python mô-đun?

Sziraquisziraquisziraqui

5.4953 Huy hiệu vàng26 Huy hiệu bạc37 Huy hiệu đồng3 gold badges26 silver badges37 bronze badges

1

Trong trường hợp của tôi, đó là Windows vs Python bất ngờ, mặc dù tên tệp Windows không nhạy cảm với trường hợp, Python Nhập là. Vì vậy, nếu bạn có tệp

ImportError: No module named myapp
9, bạn cần nhập tên này là.

Đã trả lời ngày 17 tháng 5 năm 2018 lúc 9:31May 17, 2018 at 9:31

Astrowalkerastrowalkerastrowalker

2.8372 Huy hiệu vàng16 Huy hiệu bạc33 Huy hiệu Đồng2 gold badges16 silver badges33 bronze badges

Giả sử tôi viết một mô -đun

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
2

Chúng ta phải nói với Python nơi để tìm mô -đun. Chúng tôi phải thêm con đường của chúng tôi vào

import SomeObject
0

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
3

Bây giờ

import SomeObject
1 trả về:

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
4

Chúng tôi đã tạo mô -đun của mình, chúng tôi đã thông báo cho Python đường dẫn của nó, bây giờ chúng tôi sẽ có thể nhập nó

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
5

Đã trả lời ngày 14 tháng 9 năm 2020 lúc 2:09Sep 14, 2020 at 2:09

Hướng dẫn why i cannot import module python? - tại sao tôi không thể nhập python mô-đun?

0

Điều này làm việc cho tôi:

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
6

import SomeObject
2 biểu thị rằng nó sẽ tìm kiếm bất kỳ mô -đun cục bộ nào từ mô -đun cha.

Đã trả lời ngày 30 tháng 5 lúc 3:58May 30 at 3:58

Hướng dẫn why i cannot import module python? - tại sao tôi không thể nhập python mô-đun?

Câu trả lời ngắn:

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
7

Thực hiện tệp cần thiết thông qua cờ mô -đun hoạt động cho tôi. Hãy nói rằng chúng tôi có một cấu trúc thư mục điển hình như dưới đây:

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
8

Bây giờ nếu bạn muốn chạy một tệp bên trong một thư mục, điều đó có nhập từ các mô -đun khác, tất cả những gì bạn cần làm giống như dưới đây:

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
9

PS: Bạn phải sử dụng ký hiệu DOT để giới thiệu các mô hình con (tệp/tập lệnh bạn muốn thực thi). Ngoài ra tôi đã sử dụng Python3.9+. Vì vậy, tôi không yêu cầu không có bất kỳ init.py hay bất kỳ câu lệnh nào của Sys Path.init.py nor any sys path append statements.

Hy vọng điều đó sẽ giúp! Mã hóa hạnh phúc!

Đã trả lời ngày 29 tháng 8 năm 2021 lúc 13:23Aug 29, 2021 at 13:23

Hướng dẫn why i cannot import module python? - tại sao tôi không thể nhập python mô-đun?

Deekshith Ananddeekshith AnandDeekshith Anand

1.6451 Huy hiệu vàng18 Huy hiệu bạc20 Huy hiệu Đồng1 gold badge18 silver badges20 bronze badges

Nếu bạn sử dụng Anaconda, bạn có thể làm:

ImportError: No module named myapp
0

Từ shell và nó sẽ viết đường dẫn của bạn vào một tệp conda.pth vào thư mục tiêu chuẩn cho các mô-đun bên thứ 3 (gói trang web trong trường hợp của tôi).

Đã trả lời ngày 5 tháng 8 lúc 21:39Aug 5 at 21:39

Tại sao tôi không thể nhập các mô -đun trong Python?

Điều này được gây ra bởi thực tế là phiên bản Python mà bạn đang chạy tập lệnh của mình không được cấu hình để tìm kiếm các mô -đun nơi bạn đã cài đặt chúng. Điều này xảy ra khi bạn sử dụng cài đặt sai của PIP để cài đặt các gói.the version of Python you're running your script with is not configured to search for modules where you've installed them. This happens when you use the wrong installation of pip to install packages.

Làm thế nào để bạn sửa một mô -đun nhập trong Python?

Python's Irtunterror (ModulenotFounderRor) chỉ ra rằng bạn đã cố gắng nhập một mô -đun mà Python không tìm thấy.Nó thường có thể được loại bỏ bằng cách thêm một tệp có tên __init__.py vào thư mục và sau đó thêm thư mục này vào $ pythonpath.adding a file named __init__.py to the directory and then adding this directory to $PYTHONPATH .

Làm thế nào tôi có thể nhập mô -đun trong Python?

Để tạo một mô -đun, chỉ cần lưu mã bạn muốn trong một tệp với phần mở rộng tệp .Py:..
Lưu mã này trong một tệp có tên mymodule.py.....
Nhập mô -đun có tên myModule và gọi hàm lời chào: ....
Lưu mã này trong tệp mymodule.py.....
Nhập mô -đun có tên MyModule và truy cập từ điển Person1:.

Tại sao mô -đun Python của tôi không được tìm thấy?

Dưới đây là một vài lý do tại sao một mô -đun có thể không được tìm thấy: bạn không có mô -đun bạn đã thử nhập cài đặt trên máy tính của mình.Bạn đã đánh vần một mô -đun không chính xác (vẫn liên kết trở lại điểm trước, rằng mô -đun sai chính tả không được cài đặt) ... ví dụ, đánh vần Numpy khi Numpys trong quá trình nhập.you do not have the module you tried importing installed on your computer. you spelled a module incorrectly (which still links back to the previous point, that the misspelled module is not installed)...for example, spelling numpy as numpys during import.