- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在寻找一种导入模块的方法,以便我可以从子文件夹 project/v0
和根文件夹 dự án
运行脚本。/p>
我在 python 3.6 中的文件结构(这就是没有初始化文件的原因)
dự án
├── api.py
├── v0
│ ├── SearchEngine.py => contains SearchEngine class
│ └── SearchEngineBE.py
我的 SearchEngineBE.py 模块包含
from SearchEngine import SearchEngine
我的 api.py 模块包含
from v0.SearchEngineBE import SearchEngineBE
第 1 步:当我从 project/v0
chạy python3 SearcheEngineBE.py
时,我的模块已正确导入并且一切顺利。
step2: 但是,当我从 dự án
chạy python3 run api.py
时,我得到了错误:
Theo dõi (cuộc gọi gần đây nhất là cuộc gọi cuối cùng):
File "api.py", line 3, in
from v0.SearchEngineBE import SearchEngineBE
File "/xxx/project/v0/SearchEngineBE.py", line 3, in
from SearchEngine import SearchEngine
ModuleNotFoundError: No module named 'SearchEngine'
我该如何解决这个问题,以便第 1 步和第 2 步都能正常工作?
1 Câu trả lời
非相对导入由解释器在当前目录(以及任何其他搜索路径)中搜索。
您可以在 SearchEngineBE.py
文件中使用相对导入,让解释器知道您需要相关模块,而不是导入路径之外的模块:
# SearchEngineBE.py
from .SearchEngine import SearchEngine
.
让解释器知道您正在引用与当前模块相关的模块。您至少需要在与 SearchEngine.py
相同的目录中有一个空白的 __init__.py
文件才能使相对导入工作:
Các
__init__.py
files are required to make Python treat directories containing the file as packages.
https://docs.python.org/3/tutorial/modules.html
有关更多讨论,请参阅本指南:https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html#absolute-vs-relative-import
biên tập:没有根包,这是行不通的。请参阅此帖子了解另一种方法:Importing modules from a neighbouring folder in Python
关于Python3 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56361809/
Khi tôi làm điều này... import numpy as np ... Tôi có thể sử dụng nó nhưng... import pprint as pp ... không thể, vì tôi cần phải làm điều này... from pprint import
Đây là lần đầu tiên tôi thử sử dụng OpenCV với Python 3. Để cài đặt, tôi chỉ cần nhập "pip3 install opencv-python" vào terminal. Khi tôi làm điều này, tôi thấy trong Finder (tôi đang dùng máy Mac) rằng bên dưới
Nếu có một thư viện mà tôi sẽ sử dụng cho ít nhất hai phương pháp, thì có sự khác biệt nào về hiệu suất hoặc mức sử dụng bộ nhớ giữa các phương pháp sau không? Có sự khác biệt giữa from X import method1, method2 và import X, bởi vì trong imp
Tôi đang nhập một số hàm từ lodash và đồng nghiệp của tôi nói với tôi rằng tốt hơn là nhập từng hàm riêng lẻ thay vì nhập chúng theo nhóm. Phương pháp hiện tại: import {fn1, fn2, fn3} from 'lodash'; Phương pháp ưa thích:
Mối quan hệ giữa: phần tử import trong WSDL - và - phần tử import trong XML Schema là gì ... đặc biệt là mối quan hệ giữa thuộc tính location của phần tử trước và thuộc tính schemaLocation của phần tử sau
Tôi gặp sự cố khi nhập 'local_bitwidth' từ 'theano.configdefaults'. và hiển thị thông báo sau: ImportError
Tôi nhận thấy React có thể được nhập như thế này: import * as React from 'react'; ...hoặc như thế này: import React from 'react'; Lần nhập đầu tiên là React
Đối với dự án hiện tại, tôi phải sử dụng thông tin được cung cấp trong ma trận và thực hiện các phép tính toán học trên đó, cũng như hiển thị thông tin y tế/kết xuất bằng các hàm ITK/VTK. Về cơ bản, tôi phải sử dụng cả hai chương trình matlab và VTK/ITK theo cách (tôi đoán) 50/50
Khi tôi xem các ví dụ về pysqlite, có hai trường hợp sử dụng thư viện SQLite. từ sqlite3 nhập dbapi2 như sqlite3 và nhập sqlite3 Tại sao có hai cách để hỗ trợ s
Tôi sử dụng bản phân phối Anaconda Python: Python 2.7 x64 và Windows 7 SP1 x64 Ultimate. Khi tôi nhập matplotlib.pyplot, tôi nhận được
Catalog [Container] Xuất/nhập hình ảnh Xuất/nhập có nhãn không có nhãn, chỉnh sửa sau [Warehouse] Xuất/nhập hình ảnh
Tôi đang tìm cách nhập mô-đun để có thể chạy các tập lệnh từ cả thư mục con project/v0 và thư mục gốc project. /p> Cấu trúc tệp của tôi trong python 3.6 (đó là lý do tại sao không có tệp init) proj
Tôi thường được nghe nói rằng những điều sau đây là thói quen xấu. Lý do chính (hay ít nhất là tôi được nghe) cho lệnh from module import * là bạn có thể nhập thứ gì đó mà bạn không muốn nhập và nó có thể làm lu mờ một hàm hoặc lớp có tên tương tự trong một mô-đun khác. Tuy nhiên, Py
Tôi đã viết một wrapper nhỏ cho urllib (python3). Có đúng và an toàn khi nhập một mô-đun trong if không? nếu self.response_encoding == 'gzip': nhập gzip
Tôi đang tạo một trang web mới trong pimcore. Có cách nào để xuất/nhập toàn bộ dữ liệu của một trang web pimcore để tôi có thể xuất dữ liệu pimcore theo định dạng xml/csv, thực hiện những thay đổi cần thiết rồi nhập lại không? 1 Câu trả lời
Khi kiểm tra bố cục mô-đun sau trong Node JS, có vẻ như định nghĩa của lệnh xuất cục bộ luôn thay thế định nghĩa của lệnh xuất bên ngoài trong trường hợp xung đột tên (xem f1 trong B.js). A.js xuất const f1 = 'A' B.js e
Tôi đang gặp một số vấn đề với mã VBA được cho là nhập dữ liệu Excel vào cơ sở dữ liệu Access của tôi. Khi tôi chạy mã, tôi nhận được lỗi thời gian chạy "Lỗi thời gian chạy 438 Đối tượng không hỗ trợ thuộc tính hoặc phương thức này". Từ những lý thuyết khác của tôi
Tôi có một gói gọi là thành phần chứa những thứ như nút, bộ ba fader, áp phích, v.v. Trong lớp Button tôi đang thực hiện from elements import * Điều này hoạt động tốt, nhưng khi tôi thử print(p
Với kinh nghiệm lâu năm sử dụng Python, tôi đã gặp phải một vấn đề rất kỳ lạ. Trước hết tôi muốn nói rằng tôi muốn biết tại sao điều này lại xảy ra, chứ không phải cách thay đổi mã hoặc cách sửa lỗi, vì tôi cũng có thể làm được điều đó. Tôi đang sử dụng python2.7.3
Tôi đang cập nhật các gói của mình. Tuy nhiên, tôi đang gặp khó khăn với các phần phụ thuộc/nhập. Tôi sử dụng hai gói xung đột - ggplot2 và psych và hàm alpha của chúng và tất nhiên đối tượng của alpha ggplot2 khác với alpha psy
Tôi là một lập trình viên xuất sắc, rất giỏi!