2016-09-13 55 views
1

我正在用Python 3編寫Jupyter筆記本電腦,並且我想從該筆記本電腦中運行Python 2腳本。我想知道是否可以從Notebook內運行Shell命令,並讓這些Shell命令在不同的環境下運行。例如,如果env2是運行Python 2的Conda環境,並且env3運行Python 3,並且我的Jupyter Notebook運行在env3中,那麼也許我可以在我的筆記本中編寫代碼: !來源激活env2 ! script_that_uses_python2.py 然後繼續使用Notebook中的python 3代碼(並使用script_that_uses_python2.py的輸出)。從Jupyter筆記本電腦通過外殼激活新的Conda環境

我試過了,它沒有工作(!conda info --envs顯示env3仍在運行)。有關如何在筆記本電腦中改變環境然後回到原始環境的建議?

+0

據我所知,你不能激活另一個環境,並讓它像那樣工作。你可以做的是明確地運行Python,就像'!/ path/to/anaconda/envs/python2env/bin/python script_that_uses_python2.py'。如果我在我的系統上運行'!/ path/to/anaconda/envs/python2env/bin/python -c「導入sys;打印sys.path」'它只顯示Python 2目錄,所以它可能會找到正確的導入。但是,該腳本中的變量在您的筆記本中將不可用。你可以讓Python 2文件寫出一個Pickle文件並嘗試讀取,也許... – darthbith

+0

它的工作原理!謝謝。 – RGS

回答

0

據我所知,你不能激活另一個環境並使其工作。你可以做的是運行Python中明確,像

!/path/to/anaconda/envs/python2env/bin/python script_that_uses_python2.py 

如果我在我的系統上運行

!/path/to/anaconda/envs/python2env/bin/python -c "import sys; print sys.path" 

,那隻能說明Python的2個目錄,所以它可能會找到正確的進口。但是,該腳本中的變量在您的筆記本中將不可用。你可以讓Python 2文件寫出一個Pickle文件,並嘗試讀取,也許...

相關問題