[英]OSX + Eclipse + PyDev - PATH isn't correct
嘗試使用Eclipse和PyDev(Debug)在OSX上運行以下腳本:
#------------------------------------------------------
import os, subprocess
from os.path import join as join_path
def cmd(command):
print('$ ' + command)
process = subprocess.Popen(command, shell=True, executable="/bin/bash", stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
return process.communicate() + (process.returncode,)
stdout, stderr, error_code = cmd('echo $PATH')
print(stdout, stderr, error_code)
stdout, stderr, error_code = cmd('echo $PYTHONPATH')
print(stdout, stderr, error_code)
stdout, stderr, error_code = cmd('which python')
print(stdout, stderr, error_code)
stdout, stderr, error_code = cmd('which apt-get')
print(stdout, stderr, error_code)
#------------------------------------------------------
但$ PATH不是我在.bashrc或.profile中設置的,我無法運行apt-get,它位於sw / bin中。 運行subprocess.Popen時,似乎我的$ PATH被覆蓋或設置不正確。
這是我上面腳本的輸出:
$ echo $PATH
('/usr/bin:/bin:/usr/sbin:/sbin\n', '', 0)
$ echo $PYTHONPATH ('/Applications/eclipse/plugins/org.python.pydev_2.6.0.2012062515/pysrc/pydev_sitecustomize:/Users/bryancdickson/Development/Lootsie/_repos/ap/ap:/Users/bryancdickson/Development/Lootsie/_repos/ap/ap/ap:/sw/bin:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC:/Library/Python/2.7/site-packages\n', '', 0)
$ which python
('/usr/bin/python\n', '', 0)
$ which apt-get
> ('', '', 1)
PyDev可能設置$ PATH,與bash配置文件中的設置無關。
我建議你:
從具有正確PATH設置的bash shell啟動PyDev(我假設Eclipse將從shell繼承環境)。
要么
在Eclipse中顯式配置PATH(我不知道如何執行此操作的詳細信息,在文檔中搜索“環境變量”)。
好的,找到了解決問題的簡單方法。 在這里找到了許多好的筆記: Mac OS X中的環境變量
從終端啟動Eclipse - 雖然煩人 - 工作正常。 從我的終端類型/ Applications / eclipse / eclipse和我的環境變量中獲取:
$ echo $ PATH('/ sw / bin:/ sw / sbin:/ usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ usr / X11 / bin:/ usr / local / mysql / bin:sw / bin:/ usr / local / mysql / bin:sw / bin:/ usr / X11R6 / bin \\ n','',0)$ echo $ PYTHONPATH('/ Applications / eclipse / plugins / org.python.pydev_2.6.0.2012062515 / pysrc / pydev_sitecustomize:/用戶/ bryancdickson /開發/ Lootsie / _repos / AP / AP:/用戶/ bryancdickson /開發/ Lootsie / _repos / AP / AP / AP:/ SW /箱:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7:/系統/資源庫/框架/ Python.framework /版本/ 2.7 / lib中/ python2.7 /開發平台 - 達爾文:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac:/系統/資源庫/框架/ Python.framework /版本/ 2.7 / lib中/ python2.7 /高原-MAC / LIB-scriptpackages:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python:/系統/資源庫/框架/ Python.framework /版本/ 2.7 / lib中/ python2.7 / LIB-TK:/System/Library/Frameworks/Python.fram ework /版本/ 2.7 / lib中/ python2.7 / lib目錄歲:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload:/系統/資源庫/框架/ Python的。 framework / Versions / 2.7 / Extras / lib / python / PyObjC:/Library/Python/2.7/site-packages:/ sw / bin \\ n','',0)$ which python('/ usr / bin / python \\ n','',0)$ apt-get('/ sw / bin / apt-get \\ n','',0)
您可以在以下位置找到內部PyDev首選項:
Window:首選項:PyDev:Interpreter - Python
這包括系統PYTHONPATH。
從終端啟動Eclipse為Eclipse 4.3工作,但它不再適用於Eclise 4.5(火星)
問題是調用subprocess.Popen時沒有正確設置PATH
變量
解決方法是使用os.environ
將真實PATH
添加到環境中
import os
os.environ['PATH'] = os.environ['PATH']+':'+os.getenv('PATH')
這對我有用(我只需要在Python解釋器的環境中添加變量PATH
及其值,請參閱首選項(首選項 - > PyDev - >解釋器 - > Python解釋器 - >環境)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.