我试图运行一个脚本,启动,除其他外,一个python脚本。我得到一个ImportError:没有模块命名为…但是,如果我启动ipython并通过解释器以相同的方式导入相同的模块,则该模块将被接受。
发生了什么事,我该怎么解决?我试图理解python如何使用PYTHONPATH,但我完全困惑了。任何帮助都将不胜感激。
我试图运行一个脚本,启动,除其他外,一个python脚本。我得到一个ImportError:没有模块命名为…但是,如果我启动ipython并通过解释器以相同的方式导入相同的模块,则该模块将被接受。
发生了什么事,我该怎么解决?我试图理解python如何使用PYTHONPATH,但我完全困惑了。任何帮助都将不胜感激。
当前回答
我发现这个问题的解决方案在这里有大量的文档:
https://jakevdp.github.io/blog/2017/12/05/installing-python-packages-from-jupyter/
基本上,你必须在Jupyter环境中安装包,发出shell命令,比如:
!{sys.executable} -m pip install numpy
请查看上面的链接,以获得权威的完整答案。
其他回答
我是这样解决的:
import os
import sys
module_path = os.path.abspath(os.getcwd() + '\\..')
if module_path not in sys.path:
sys.path.append(module_path)
删除pathlib并重新安装。删除siteppackages文件夹中的pathlib,使用pip命令重新安装pathlib包:
pip install pathlib
如果你从命令行运行它,有时候python解释器不知道在哪里寻找模块。
下面是我项目的目录结构:
/project/apps/..
/project/tests/..
我是按照命令运行的:
>> cd project
>> python tests/my_test.py
运行以上命令后,我得到以下错误
no module named lib
Lib在my_test.py中导入
我打印了sys。路径,并发现我正在工作的项目的路径在系统中不可用。路径列表
我在脚本my_test.py的开头添加了以下代码。
import sys
import os
module_path = os.path.abspath(os.getcwd())
if module_path not in sys.path:
sys.path.append(module_path)
我不确定这是不是解决问题的好方法,但对我来说确实有效。
无需脚本的解决方案:
打开Spyder -> Tools -> PYTHONPATH管理器 通过点击“Add Path”添加Python路径。 例如:C: \ \用户用户\ AppData \本地Python \程序\ \ Python37 \ Lib \网站” 点击“同步…”允许其他程序(例如Jupyter Notebook)使用步骤2中设置的pythonpaths。 重启Jupyter,如果它是打开的
在运行python项目时,只需在显示错误的文件夹下创建一个名为__init__.py的空python文件。