我的jupyter笔记本存储在C:\snip\Pictures\demo中,我需要导入存储在C:\snip\Pictures\demo\mrcnn中的python文件。
当我尝试这个时:
from mrcnn import utils
from mrcnn import visualize
from mrcnn.visualize import display_images
from mrcnn.visualize import display_instances
import mrcnn.model as modellib
from mrcnn.model import log
from mrcnn.config import Config
from mrcnn import model as modellib, utils
我收到此错误:
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-10-fdc1339465a7> in <module>
17 import matplotlib.image as mpimg
18
---> 19 from mrcnn import utils
20 from mrcnn import visualize
21 from mrcnn.visualize import display_images
ModuleNotFoundError: No module named 'mrcnn'
mrcnn 是文件夹名称,utils、visible... 是文件夹内的 python 文件。我该如何解决这个问题?
sys.path
。这列出了 python 解释器在执行
import
时正在查找的目录。
import sys
print(sys.path)
Output (Something like this):
['/mnt/c/Users/lapto/Desktop/demos', '/home/elaaf/anaconda3/lib/python38.zip', '/home/elaaf/anaconda3/lib/python3.8', '/home/elaaf/anaconda3/lib/python3.8/lib-dynload', '/home/elaaf/anaconda3/lib/python3.8/site-packages', '/home/elaaf/anaconda3/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg']
如果您当前的工作目录在输出列表中。
您的 import
呼叫不仅仅是不在当前目录中查找。尝试将当前目录添加到
sys.path
并导入模块
import sys
sys.path.append(".")
请告诉我这是否有帮助。
文件夹结构
mymodule.py
中的代码
mynotebook1.ipynb
root
|
|----mynotebook1.ipynb
|
|
|----mynotebook2.ipynb
|
|----modules
| |
| |-----__init__.py
| |
| |-----mymodule.py
|
|
mymodule.py 的内容class MyAlgorithms(object):
@staticmethod
def some_implementation_1():
print("Inside implmentation 1" )
@staticmethod
def some_implementation_2():
print("Inside implmentation 2" )
from .mymodule import MyAlgorithms
__all__=["MyAlgorithms"]
启动 Jupyter 之前设置 PYTHONPATH sys.path
操作 - 我想避免这种情况。如果使用 PowerShell
$env:PYTHONPATH=$PWD.Path
如果使用Windows CMDset PYTHONPATH=%cd%
import modules
modules.MyAlgorithms.some_implementation_1()
这种方法的优点__init__.py
中关联导入