我遇到了导入错误,但只有在从cmd或windows任务调度程序运行我的python脚本时(实际上是我假设的同一个问题)。我已经研究了答案并尝试了各种解决方案(下面详细介绍),但还没有任何工作。我需要了解任何情况下的问题,以便将来可以管理类似的事情。
问题是这样的:
Windows 10. Anaconda Python 3.9.7.虚拟环境。
我有一个脚本,如果我打开一个anaconda提示符,激活虚拟环境并运行它,它就可以正常工作。
然而,这就是有趣的开始。如果我尝试从非anaconda cmd提示符运行脚本部署命令:“C:\Users\user\anaconda3\envs\venv\python.exe”“C:\Users\user\scripts\script.py”如果得到以下错误:
ImportError: DLL load failed while importing etree: The specified module could not be found.
Traceback includes:
"C:\Users\user\anaconda3\envs\venv\lib\site-packages\lxml\html\__init__.py", line 53, in <module>
from ..import etree
这并不像没有安装某个特定模块那么简单,因为当然是在anaconda提示符下运行脚本,虚拟环境才能正常工作。当我运行其他脚本时也会发生类似的情况。我看到的其他错误包括,例如:
ImportError: DLL load failed while importing _imaging: The specified module could not be found.
Traceback includes:
"C:\Users\user\anaconda3\envs\venv\lib\site-packages\PIL\Image.py", line 114, in <module>
from . import _imaging as core
此外,我认为这可能是某种相关的。从虚拟环境中的python解释器中导入numpy(1.22.3)工作正常,但当我尝试运行一个导入numpy的测试脚本时,它从anaconda和cmd都失败了,并出现以下错误:
ImportError: cannot import name SystemRandom
当尝试从Windows任务计划程序运行各种脚本时,最初注意到了所有问题,其中将python的路径“C:\Users\user\anaconda 3\envs\venv\python.exe”输入为Program/script,并将脚本“script.py”输入为参数。产生了上述错误,然后通过从非anaconda cmd运行脚本重现了这些错误。
我期待着了解这里发生了什么,并为解决方案,可以从Windows任务计划程序的虚拟环境中有效地运行脚本。
更新:
我已经使用conda卸载并重新安装了numpy(和pandas)。这使得venv的numpy==1.20.3(和pandas=1.4.2)。在尝试重新运行其中一个脚本时,它在anaconda的venv中运行正常,但当尝试从cmd或Windows任务计划程序中运行时,会产生以下错误:
ImportError: Unable to import required dependencies:
numpy:
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy C-extensions faled. This error can happen for many reasons, often due to issues with your setup or how NumPy was installed.
We have complied some common reasons and troubleshooting tips at:
https://numpy.org/devdocs/user/troubleshooting-importerror.html
Please note and check the following:
* The Python version is: Python3.9 from "C:\Users\user\anaconda3\envs\venv\python.exe"
* The NumPy version is "1.20.3"
and make sure that they are the versions you expect.
Please carefull study the documentation linked above for further help.
Original error was: DLL load failed while importing _multiarray_umath: The specified module could not be found.
我已经研究了建议的解决方案,但仍然完全不知所措,特别是为什么脚本在一个地方从venv运行,而不是另一个地方。
1条答案
按热度按时间a64a0gku1#
当环境变量没有为Anaconda设置时,会出现错误。检查您是否在PATH中添加了3个环境变量,请按照以下步骤操作:
a.进入Windows〉编辑账户环境变量
B.进入PATH,点击编辑
c.然后单击【新建】,在Anaconda目录中添加3个路径,根据安装位置进行更改