簡體   English   中英

ImportError:從其他Python腳本調用時,沒有名為xmltodict的模塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM