2017-02-13 21 views
2

當我在emacs org-mode中編寫一些python代碼時,如何將python env設置爲特定的env。我使用的代碼如下,但它沒有奏效。如何在組織模式下設置python env

#+BEGIN_SRC python :python /opt/local/bin/python2.7 :results output 
    print "python 2" 
    #+END_SRC 

回答

0

你可以去到暫存緩衝區,並在組織的文件執行(setq org-babel-python-command "python2")

然後嘗試

#+BEGIN_SRC python 
import platform 
return platform.python_version() 
#+END_SRC 

而且應該得到的東西,如:

#+RESULTS: 
: 2.7.13 

如果這樣的作品然後將其添加到您的init文件。

+0

我使用anaconda來管理不同的python版本,我想指定一個python解釋器。例如,我在一個版本中安裝了一些軟件包,如果我使用您的解決方案,那麼當我導入這些軟件包時可能會出現「導入錯誤」。我能想到的唯一方法是激活一個python env,然後在shell中啓動emacs。謝謝你的幫助。 –

2

我還需要org-mode來從我的anaconda環境之一運行python。您可以將emacs變量python-shell-virtualenv-root設置爲anaconda環境的路徑。那是;

M-x customize-variable RET

python-shell-virtualenv-root RET

雙擊該值菜單按鈕,然後可在在框中鍵入

字符串:/PATH/TO/VIRTUALENV

這解決了這個問題對我來說。

編輯: 我沒有提到上述僅在emacs上測試過25.2 此外,我現在認識到該解決方案僅適用於會話代碼塊。如果未指定會話,則Python代碼將使用系統範圍的默認Python安裝來運行。

+0

是的,謝謝你!我正在努力,但我沒有使用會話。謝謝你在那裏添加編輯 – ibizaman