Fondamentalement, j'essaie d'exécuter du code Python à partir du module savReaderWriter afin de créer un fichier .sav prêt à ouvrir dans IBM SPSS. En tant qu'utilisateur macOS que je devais exécuter ces deux lignes dans le premier terminal pour le module de travail:Bibliothèque (dylib) non chargée - image non trouvée - IDE Python
echo 'export DYLD_LIBRARY_PATH=/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/spssio/macos' >> ~/.bash_profile
echo 'export LC_ALL=en_US.UTF-8' >> ~/.bash_profile
Ci-dessous vous pouvez voir un morceau de code que je suis en train de courir en Python:
import savReaderWriter
savFileName = "someFile.sav"
records = [['Test1', 1, 1], ['Test2', 2, 1]]
varNames = ['var1', 'v2', 'v3']
varTypes = {'var1': 5, 'v2': 0, 'v3': 0}
with savReaderWriter.SavWriter(savFileName, varNames, varTypes, ioUtf8=True) as writer:
for record in records:
writer.writerow(record)
Mon problème est que lors de l'exécution du code en Python via terminal.app fonctionne comme un charme et un nouveau fichier .sav apparaît, en essayant d'exécuter le même code dans un IDE (essayé PyCharm et Spyder) me donne une erreur:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2847, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-94007b092d47>", line 7, in <module>
with savReaderWriter.SavWriter(savFileName, varNames, varTypes, ioUtf8=True) as writer:
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/savWriter.py", line 198, in __init__
super(Header, self).__init__(savFileName, ioUtf8, ioLocale)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/generic.py", line 29, in __init__
self.spssio = self.loadLibrary()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/generic.py", line 117, in loadLibrary
spssio = self._loadLibs("macos")
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/generic.py", line 89, in _loadLibs
return [load(os.path.join(path, lib)) for lib in libs][-1]
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/generic.py", line 89, in <listcomp>
return [load(os.path.join(path, lib)) for lib in libs][-1]
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ctypes/__init__.py", line 348, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/spssio/macos/libicuuc48.1.dylib, 6): Library not loaded: @executable_path/../lib/libicudata48.1.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/savReaderWriter/spssio/macos/libicuuc48.1.dylib
Reason: image not found
L'auteur du module n'a pas pu m'aider à ce sujet, donc je serais très heureux de recevoir des suggestions de cette communauté.
EDIT (ajouté sys.path):
Depuis le terminal:
['',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages',
'/Users/mg/mne-python']
De IDE:
['/Applications/PyCharm.app/Contents/helpers/pydev',
'/Users/mg/Documents/Python/Projects/MD',
'/Applications/PyCharm.app/Contents/helpers/pydev',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages',
'/Users/mg/mne-python',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/IPython/extensions',
'/Users/mg/Documents/Python/Projects/MD']
Cordialement,
MG
Bien qu'il ne supporte pas la version 3.6, cela fonctionne pour moi ok (dans le terminal au moins). Tous les chemins de recherche qui apparaissent dans le terminal apparaissent également dans l'EDI. –
Dans le même ordre? Bizarre. – JKP
Sortie sys.path ajoutée –