[英]Script works in Anaconda Prompt but not via Command Line
我無法在命令行中運行 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 都位於 Traceback 中指定的位置。 '_ssl' 是我似乎無法診斷的唯一參考。 同樣,這在 Notebook 和 Anaconda Prompt 中都可以正常工作。
有任何想法嗎?
通過安裝 Python 3.7 的單獨實例,移動 PATH 引用和其他指針,為我解決了這個問題。 我將 pip、mygeotab 和其他軟件包安裝到本機 Python 3.7 實例中。 看起來你不能像我想的那樣使用 anaconda 中的那個。 感謝大家的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.