[英]ImportError: No module named xmltodict while calling from other Python script
我有一個奇怪的問題。
我在Py2.7上,正在從python腳本調用py文件。 下面是我的代碼
呼叫者
import os
import subprocess
filename = 'file.py'
data = 'aXD'
output = subprocess.check_output(['python', filename,data], shell=False)
file.py
import sys
import os
import xmltodict
args = sys.argv
xml = args[1].strip('\n')
xml = xml.strip()
pid = str(os.getpid())
result = {'msg':'ok',"pid":pid}
print(result)
它給出了錯誤:
import xmltodict
ImportError: No module named xmltodict
Traceback (most recent call last):
該模塊在此處正確,因為文件在單獨執行時運行完美。
可以通過以下簡單方法解決該問題:使用' $ sudo pip install xmltodict
-python軟件包管理器$ sudo pip install xmltodict
這應該安裝缺少的模塊,並且該模塊應該沒有問題。
在您的Python路徑中添加“當前目錄”,以便它將在目錄中與主程序一起找到模塊
import sys
sys.path.append('.')
作為一個答案,而不是在注釋中->問題是,您安裝了多個python解釋器,並且得到了與通過subprocess.check_output
啟動它時預期的不同的解釋器。 您應該通過如下方式更改調用來解決此問題:
output = subprocess.check_output([sys.executable, filename,data], shell=False)
這樣至少可以確保兩個腳本都由同一個解釋器運行。
使用conda為xmltodict安裝此軟件包,您需要運行以下操作之一:
conda安裝-c conda-forge xmltodict conda安裝-c conda-forge / label / gcc7 xmltodict
conda安裝-c conda-forge / label / cf201901 xmltodict
安裝軟件包xmltodict后,請重新運行腳本。 它會工作。
與Tsanko的答案(適用於Mac或Linux,適用於Windows)類似,它幾乎是相同的命令,只是不需要sudo。
pip install xmltodict
在Windows計算機上遇到相同的問題后,這種調整對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.