我试图运行一个脚本,启动,除其他外,一个python脚本。我得到一个ImportError:没有模块命名为…但是,如果我启动ipython并通过解释器以相同的方式导入相同的模块,则该模块将被接受。

发生了什么事,我该怎么解决?我试图理解python如何使用PYTHONPATH,但我完全困惑了。任何帮助都将不胜感激。


当前回答

在安装ipython之前,我通过easy_install安装模块;输入sudo easy_install mechanize。

在安装ipython之后,我必须为ipython重新运行easy_install以识别模块。

其他回答

执行sys.path.append('my-path-to-module-folder')可以工作,但为了避免在每次使用模块时都在IPython中执行此操作,您可以将export PYTHONPATH="my-path-to-module-folder:$PYTHONPATH"添加到~/。bash_profile文件。

在安装ipython之前,我通过easy_install安装模块;输入sudo easy_install mechanize。

在安装ipython之后,我必须为ipython重新运行easy_install以识别模块。

import sys
sys.path.append('/Users/{user}/Library/Python/3.7/lib/python/site-packages')
import ta

我发现这个问题的解决方案在这里有大量的文档:

https://jakevdp.github.io/blog/2017/12/05/installing-python-packages-from-jupyter/

基本上,你必须在Jupyter环境中安装包,发出shell命令,比如:

!{sys.executable} -m pip install numpy

请查看上面的链接,以获得权威的完整答案。

这个答案适用于这个问题,如果

你不想改变你的代码 您不希望永久地更改PYTHONPATH

临时修改PYTHONPATH

下面的路径可以是相对的

PYTHONPATH=/path/to/dir python script.py