我无法在命令行中运行python脚本,并且该脚本在Jupyter Notebook和Anaconda Prompt中都可以很好地工作。在我要导入的另一个模块(mygeotab)初始化期间,导入ssl模块似乎是一个问题。
我已经搜索了该错误,并尽了最大的努力来诊断最常见的原因,这似乎是PATH问题。
我已经诊断了PATH,并将/ lib /和python.exe的位置添加到了环境变量中。此外,在测试过程中,我从下面开始执行我的脚本,以保护自己免受路径问题的影响,并在“追加”之前和之后打印路径,这对问题没有影响。
import sys
print(sys.path)
sys.path.append('C:\\Users\\xxxxxx\\Python Scripts')
sys.path.append('C:\\Anaconda3\\python37.zip')
sys.path.append('C:\\Anaconda3\\DLLs')
sys.path.append('C:\\Anaconda3\\lib')
sys.path.append('C:\\Anaconda3')
sys.path.append('C:\\Anaconda3\\lib\\site-packages')
sys.path.append('C:\\Anaconda3\\lib\\site-packages\\win32')
sys.path.append('C:\\Anaconda3\\lib\\site-packages\\win32\\lib')
sys.path.append('C:\\Anaconda3\\lib\\site-packages\\Pythonwin')
sys.path.append('C:\\Anaconda3\\lib\\site-packages\\IPython\\extensions')
sys.path.append('C:\\Users\\xxxxxx\\.ipython')
sys.path.append('C:\\Anaconda3\\Lib')
sys.path.append('C:\\Anaconda3\\Lib\\site-packages')
print(sys.path)
import mygeotab
import pandas as pd
import pyodbc as py
from mygeotab.ext import feed
import sqlalchemy
from time import sleep
但是,当我尝试通过标准命令行运行脚本时,出现以下错误:
Traceback (most recent call last):
File "PYTHON_GEOTAB_TRIP_FEED.py", line 33, in <module>
import mygeotab
File "C:\Anaconda3\lib\site-packages\mygeotab\__init__.py", line 9, in <module>
from .api import Credentials
File "C:\Anaconda3\lib\site-packages\mygeotab\api.py", line 14, in <module>
import ssl
File "C:\Anaconda3\lib\ssl.py", line 98, in <module>
import _ssl # if we can't import it, let the error propagate
ImportError: DLL load failed: The specified module could not be found.
mygeotab模块和ssl.py都位于“回溯”中指定的位置。 “ _ssl”是我似乎无法诊断的唯一参考。同样,在Notebook和Anaconda Prompt中都可以正常工作。
有什么想法吗?
答案 0 :(得分:1)
对我来说,这是通过安装单独的Python 3.7实例,移动PATH引用和其他指针来解决的。我在本地Python 3.7实例中安装了pip,mygeotab和其他软件包。看来您无法像我所想的那样使用烤制的水蟒。感谢大家的帮助。