2015-11-19 14 views
13

Sto usando PyCharm 5 per eseguire uno script Python 2.7 (Anaconda) in Ubuntu. Il mio script importa un modulo con import tensorflow, ma questo causa l'errore ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory. Quindi, sembra che la libreria libcudart.so.7.0 sia necessaria per questo modulo, ma non può essere trovata.PyCharm non trova la libreria

Ora, ho visto che questa libreria è sulla mia macchina in /usr/local/cuda-7.0/targets/x86_64-linux/lib. Quindi, in PyCharm, sono passato a Settings->Project Interpreters->Interpreter Paths. Questo ha un elenco di percorsi, come ad esempio /home/karnivaurus/Libraries/Anaconda/python2.7. Ho quindi aggiunto a questo elenco, il percorso sopra menzionato che contiene la libreria richiesta.

Tuttavia, questo non ha risolto il problema. Ricevo ancora un errore che mi dice che non è stato possibile trovare libcudart.so.7.0. Se eseguo il mio script dalla shell (python myfile.py), allora funziona perfettamente.

Come posso comunicare a Python dove trovare questa libreria?


ho notato che se ho print sys.path nel mio script, i percorsi esso stampa sono del tutto diversi da quelli in Settings->Project Interpreters->Interpreter Paths ... dovrebbero essere gli stessi?

+1

PyCharm sta eseguendo il tuo script usando lo stesso 'python' come terminale? Quello sarebbe il primo sguardo. Assicurarsi che la configurazione di esecuzione stia utilizzando l'interprete corretto. Esegui> Modifica configurazioni. Seleziona il tuo progetto, quindi sotto Project Interpreter, assicurati di aver selezionato anaconda python. –

+0

Sì, ho selezionato Anaconda Python per il mio progetto PyCharm e anche l'interprete nel mio terminale ... – Karnivaurus

+0

Non lo so. http://stackoverflow.com/questions/28390961/using-anaconda-within-pycharm e http://stackoverflow.com/questions/33646541/tensorflow-and-anaconda-on-ubuntu potrebbero aiutarti a risolvere ulteriori problemi. –

risposta

14

Il percorso verso la libreria di cuda mi sembra strano. Mi aspetto che sia /usr/local/cuda-7.0/lib64 o /usr/local/cuda-7.0/lib.

Hai seguito tutta la procedura cuda installation?

Se si digita env sulla riga di comando, viene visualizzato un percorso per cuda nel proprio LD_LIBRARY_PATH?


Aggiornamento da commenti qui sotto:

Il problema è che PyCharm è stato invocato dal desktop, e non è stato sempre le variabili di ambiente giusto. La soluzione è a uno:

  • invoke dalla riga di comando,
  • creare uno script per impostare l'ambiente e quindi richiamare, e fare un collegamento a tale script sul desktop,
  • o impostare le variabili di ambiente sul elemento desktop
+0

Sì, ho seguito le istruzioni di installazione CUDA ufficiali. La directory in/usr/local/cuda-7.0/lib64' è in realtà un collegamento simbolico a '/ usr/local/cuda-7.0/targets/x86_64-linux/lib'. Non sono sicuro del motivo per cui è stato creato questo collegamento, ma non l'ho fatto manualmente. Digitando in 'env' mi dà:' LD_LIBRARY_PATH =/home/karnivaurus/Libraries/CUDNN-7.0/lib64: /usr/local/cuda-7.0/targets/x86_64-linux/lib: /usr/local/cuda-7.0/ lib64'. Quindi la directory richiesta è lì (quindi perché il mio script funziona quando si esegue dal terminale), ma sembra che PyCharm non usi questa variabile d'ambiente. – Karnivaurus

+2

Solo su un allodole qui, stai eseguendo pycharm da un'icona sul desktop? Hai provato a invocarlo da una shell che ha tutte le variabili d'ambiente impostate correttamente? – Laizer

+0

Sì, eseguivo PyCharm da un'icona ... se provo a eseguirlo da una shell, lo script funziona! Ma non voglio doverlo fare ...! Ci deve essere un modo per PyCharm di caricare queste stesse variabili d'ambiente ... – Karnivaurus

1

Avete selezionato l'interprete python corretto nelle impostazioni del vostro progetto? Vedi here.

Ho avuto un problema simile e la modifica dell'interprete l'ho risolto senza dover creare una nuova icona.

19

Mi sono imbattuto recentemente in questo problema utilizzando un debugger remoto, tuttavia credo che sia sempre la stessa soluzione. Ho appena aggiunto quanto segue alla sezione Variabili d'ambiente nelle opzioni di configurazione Esegui/Debug trovate in Esegui> Modifica configurazioni ...dialogo: LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

+2

La soluzione più semplice qui. Ho lavorato per me, grazie – Conchylicultor

+0

Ho scoperto che chiamare variabili di ambiente predefinite all'interno di questa finestra di dialogo non funzionava. Avevo bisogno di usare il percorso completo quando definivo queste variabili d'ambiente. –

+0

Ho trovato che questa soluzione ha funzionato meglio per me quando installavo TensorFlow in un ambiente Anaconda e utilizzavo PyCharm come IDE. Grazie. –

1

Modificare il pycharm.desktop, specificare la variabile d'ambiente in exec, come di seguito:

[Desktop Entry] 
Version=1.0 
Type=Application 
Name=Pycharm 
Exec=env LD_LIBRARY_PATH=:/usr/local/cuda/lib64:/usr/local/cuda/lib64 /home/cwh/software/pycharm-2016.1.4/bin/pycharm.sh 
Icon=/home/cwh/software/pycharm-2016.1.4/bin/pycharm.png 
Name[zh_CN]=Pycharm 

così pycharm troveranno cuda

+0

Tuttavia, questo approccio non si applica a un debugger remoto. –

5

Mentre alcune di queste risposte sono corrette, e potrebbe funzionare, ho non ho visto ciò che l'OP ha specificamente chiesto, ed è qui che si impostano gli ambienti per la console python. Questo può essere realizzato all'interno PyCharm a:

File> Impostazioni> Costruire, Esecuzione, Deployment> Console> Console Python

Nelle opzioni là, troverete un luogo per definire le variabili d'ambiente. Imposta LD_LIBRARY_PATH lì.

+0

Questa dovrebbe essere la risposta accettata. Questo sembra essere stato simile alla soluzione che stavo cercando. Sembra che il problema che stavo affrontando era che stavo tentando di chiamare la Variabile d'Ambiente predefinita $ CUDA_HOME/lib dalla finestra di dialogo Impostazioni di configurazione PyCharms. Quando ho cambiato completamente/usr/local/cuda/lib, tutto ha iniziato a funzionare. –

+0

D'accordo, questa sembra la risposta vera. Anche impostare CUDA_HOME su/usr/local/cuda è anche una buona idea nella sezione ambienti di pycharm. –

Problemi correlati