ImportError: No module named
Je suis un newbie.
Énoncé du problème :
Dans le répertoire sfdc_bulk j'ai 2 fichier
1)helper.py
2)sfdclogin.py
helper.py
import xml.dom.minidom as DOM
def getElemVal(xmlString,elemName):
#tree = ET.parse('test.xml')
#print tree
dom = DOM.parseString(xmlString)
val=dom.getElementsByTagName(elemName)
ret=None
if len(val) >0 :
ret=val[0].toxml()
#.replace('<' + ret + '>', '').replace('</' + ret + '>', '')
ret=ret.replace('<' +elemName+ '>','').replace('</' + elemName + '>', '')
return ret
sfdclogin.py
from helper import getElemVal
print getElemVal('<?xml version="1.0" encoding="UTF-8"?><foo>bar</foo>', 'foo')
à l'intérieur du répertoire sfdc_bulk
en utilisant ubuntu terminal:
python sfdclogin.py
il retourne bar
mais après la modification de la sfdclogin fichier à
from sfdc_bulk.helper import getElemVal
print getElemVal('<?xml version="1.0" encoding="UTF-8"?><foo>bar</foo>', 'foo')
je suis le prédécesseur d'erreur:
Traceback (most recent call last):
File "sfdclogin.py", line 2, in <module>
from sfdc_bulk.helper import getElemVal
ImportError: No module named sfdc_bulk.helper
- Est votre
sfdc_bulk
répertoire sur le Python path? A-t-elle un__init__.py
? - oui il est vide init.py .
- Il devrait être
__init__.py
, pasinit.py
. - ce n'est pas seulement init ont __ dans les deux côtés. Mais je ne sais pas combien il est supprimé de mon commentaire. merci pour votre réponse.
- C'est exactement ce que s'affiche lorsque vous tapez
__init__.py
sans backticks, depuis deux caractères de soulignement sont interprétés comme Markdown pour le gras.
Vous devez vous connecter pour publier un commentaire.
Si les deux fichiers sont dans le même répertoire, l'importer directement. Votre premier essai:
Est déjà correct. Pourquoi le changer?
Sauf si vous voulez traiter
sfdc_bulk
comme un paquet. L'inclure dans lePYTHONPATH
. Sous Windows, il serait comme:Pour une utilisation dans Ubuntu, découvrez cette réponse.