从命令行运行 python 要求我导入模块
Posted
技术标签:
【中文标题】从命令行运行 python 要求我导入模块【英文标题】:Running python from command line asks me to import modules 【发布时间】:2021-07-18 15:58:24 【问题描述】:我有一个在 Linux 上用 Spyder(Python 3.8) 编写的脚本。在 Spyder 控制台上,脚本运行良好,而我从 Linux 终端调用它时,它似乎看不到我在脚本中导入的模块。打开我运行的终端:python3 /zhome/c9/f/144817/Desktop/ChargersDaniel.py
但是,这是我遇到的错误:
Traceback (most recent call last): File "/zhome/c9/f/144817/Desktop/ChargersDaniel.py", line 9, in <module>
import GPyOpt ModuleNotFoundError: No module named 'GPyOpt'
GPyOpt 是我在脚本第一行中拥有的第一个库。 看起来由于某种原因,python3 没有看到安装的库。我已经检查了解决方案 here 但这不是我的情况,因为我已经在终端调用 Python3。
有什么建议吗? 提前致谢
【问题讨论】:
您的编辑器是否在虚拟环境中安装了您的模块? @Talon 我怎么能理解? 你的 Spider IDE 在底部栏中心可能有类似conda (Python 3.8)
的东西来指示你的环境。我强烈怀疑如果您在 Sypder 之外的新外壳中,您只需要再次激活正确的 conda 环境。 Spyder FAQ 有一堆与环境相关的条目。 docs.spyder-ide.org/current/faq.html
@JonSG 实际上最有可能解决我的问题,但是,在我的终端上输入 conda --version
时,我得到一个“找不到命令”。我打开 spyder 的方式是使用这个命令 spyder-4.1.5-python-3.8.4-numpy-1.19.2-matplotlib-pandas
加载所有必需的依赖项,然后打开 Spyder IDE。
【参考方案1】:
也许在从终端运行时检查是否安装了 GPyOpt:
python3 -c "import GPyOpt"
if [ $? -eq 0 ]
then
echo "GPyOpt is installed!"
fi
【讨论】:
问题不在于这个特定的库,实际上我在脚本开头拥有的所有库都遇到了相同的错误。所以,我想为这两种情况(spyder、终端)检查sys.path
,看看每个人都有哪个站点包路径,看起来它们看起来像是两个不同的目录。我实际上可以将包含所需库的目录添加到 PYTHONPATH 中吗?
是的,我会尝试将您的终端 $PATH
设置为在同一目录中查找,但如果这不起作用,您可能只需要在终端中安装所需的库(pip3 install --user )以上是关于从命令行运行 python 要求我导入模块的主要内容,如果未能解决你的问题,请参考以下文章
Python3/cloud9/lambda - 使导入的模块可用于 lambda