脚本可在Anaconda Prompt中运行,但不能通过命令行运行

时间:2019-09-26 22:24:57

标签: python

我无法在命令行中运行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中都可以正常工作。

有什么想法吗?

  • Windows Server 2008 R2
  • Anaconda 2019.07 x64
  • Python 3.7.3 x64

1 个答案:

答案 0 :(得分:1)

对我来说,这是通过安装单独的Python 3.7实例,移动PATH引用和其他指针来解决的。我在本地Python 3.7实例中安装了pip,mygeotab和其他软件包。看来您无法像我所想的那样使用烤制的水蟒。感谢大家的帮助。