pycharm環境和路徑配置和實用拓展功能
python直譯器路徑
python專案直譯器路徑
用於配置python專案執行的python路徑
比如,有的專案是執行的是系統python2.7下的環境;有的是3.4;有的專案使用的是virtualenv的python環境[python虛擬環境配置-pycharm中的專案配置]
在pycharm > file > settings > project:pythonworkspace > project interpreter > 選擇對應專案 > project interpreter中指定python直譯器
pycharm中執行configuration有一個選項add content roots to pythonpath
選中後sys.path中會多一整個專案project的路徑/media/pika/files/mine/python_workspace,裡面的目錄就被當成包使用,這樣就可以通過from SocialNetworks.SocialNetworks引入不是python包的目錄中的檔案了。
不過最好使用sys.path.append(os.path.join(os.path.split(os.path.realpath(__file__))[0],"../.."))來新增,這樣在pycharm外也可以執行不出錯 。
pycharm中進行python包管理
pycharm中的專案中可以包含package、目錄(目錄名可以有空格)、等等
目錄的某個包中的某個py檔案要呼叫另一個py檔案中的函式,首先要將目錄設定為source root,這樣才能從包中至上至上正確引入函式,否則怎麼引入都出錯:
SystemError: Parent module '' not loaded, cannot perform relative import
Note:目錄 > 右鍵 > make directory as > source root
python指令碼解釋路徑
ctrl + shift + f10 / f10 執行python指令碼時
當前工作目錄cwd為run/debug configurations 中的working directory
可在edit configurations > project or defaults中配置
console執行路徑和當前工作目錄
python console中執行時
cwd為File > settings > build.excution > console > pyconsole中的working directory
並可在其中配置
pycharm配置os.environ環境
pycharm中os.environ不能讀取到terminal中的系統環境變數
pycharm中os.environ不能讀取.bashrc引數
使用pycharm,無論在pythonconsole還是在module中使用os.environ返回的dict中都沒有~/.bashrc中的設定的變數,但是有/etc/profile中的變數配置。然而在terminal中使用python,os.environ卻可以獲取~/.bashrc的內容。
解決方法1:
在~/.bashrc中設定的系統環境只能在terminal shell下執行Spark程式才有效,因為.bashrc is only read for interactive shells.
如果要在當前使用者整個系統中都有效(包括pycharm等等IDE),就應該將系統環境變數設定在~/.profile檔案中。如果是設定所有使用者整個系統,修改/etc/profile或者/etc/environment吧。
如SPARK_HOME的設定[Spark:相關錯誤總結]
解決方法2:在程式碼中設定,這樣不管環境有沒有問題了
# spark environment settings import sys, os os.environ['SPARK_HOME'] = conf.get(SECTION, 'SPARK_HOME') sys.path.append(os.path.join(conf.get(SECTION, 'SPARK_HOME'), 'python')) os.environ["PYSPARK_PYTHON"] = conf.get(SECTION, 'PYSPARK_PYTHON') os.environ['SPARK_LOCAL_IP'] = conf.get(SECTION, 'SPARK_LOCAL_IP') os.environ['JAVA_HOME'] = conf.get(SECTION, 'JAVA_HOME') os.environ['PYTHONPATH'] = '$SPARK_HOME/python/lib/py4j-0.10.3-src.zip:$PYTHONPATH'
ycharm配置第三方庫程式碼自動提示
Pycharm實用拓展功能
pycharm中清除已編譯.pyc中間檔案
選中你的workspace > 右鍵 > clean python compiled files
還可以自己寫一個清除程式碼
pycharm設定外部工具
[python小工具]針對當前pycharm中開啟的py檔案對應的目錄刪除其中所有的pyc檔案。如果是直接執行(而不是在下面的tools中執行),則刪除E:\mine\python_workspace\WebSite目錄下的pyc檔案。
將上面的刪除程式碼改成外部工具
PyCharm > settings > tools > external tools > +新增
Name: DelPyc
program: $PyInterpreterDirectory$/python Python安裝路徑
Parameters:$ProjectFileDir$/Oth/Utility/DelPyc.py $FileDir$
Work directory: $FileDir$
Note:Parameters後面的$FileDir$引數是說,DelPyc是針對當前pycharm中開啟的py檔案對應的目錄刪除其中所有的pyc檔案。
之後可以通過下面的方式直接執行
Note:再新增一個Tools名為DelPycIn
program: Python安裝路徑,e.g. D:\python3.4.2\python.exe
Parameters:E:\mine\python_workspace\Utility\DelPyc.py
Work directory 使用變數$FileDir$
引數中沒有$FileDir$,這樣就可以直接刪除常用目錄r'E:\mine\python_workspace\WebSite'了,兩個一起用更方便
程式碼質量
當你在打字的時候,PyCharm會檢查你的程式碼是否符合PEP8。它會讓你知道,你是否有太多的空格或空行等等。如果你願意,你可以配置PyCharm執行pylint作為外部工具。
python2轉python3最快方式
/usr/bin/2to3 -wn $FileDir$
這樣在pycharm中開啟某個檔案,右鍵external tools > py2topy3就可以瞬間將當前檔案所在目錄下的所有py2轉換成py3,是不是很機智!