python可以在linux运行_服务器(Linux)上运行python总结
跑實驗換了幾次服務(wù)器了,每次遇到相似問題都要重新百度,而且每次百度搜索出的順序都不一樣,又得重新找半天,這次把遇到的問題都總結(jié)一下。
1.準備
PuTTY和FileZilla
FileZilla使用FTP傳輸時,實驗室的服務(wù)器可能是出于安全考慮,沒有開放21端口;想到ssh可以登錄,就換SFTP來傳輸文件(22端口)。
也可以用scp rz sz等等,但我覺得在windows上使用FileZilla的圖形界面拖拽就很方便。
2.安裝
2.1 Linux軟件安裝
首先了解下Linux下軟件的安裝,參考Linux下軟件安裝的幾種方式
2.2 Anaconda
實驗室服務(wù)器之前已經(jīng)裝了各種版本的python,大家都是各用各的,在自己的目錄下使用anaconda,我也不敢隨便改/etc/profile(也沒權(quán)限= =),就也在自己目錄下裝個anaconda吧。。
安裝python我還是第一次用anaconda(之前一直都是pip管理),
配置環(huán)境變量的配置我只改了我這個用戶的,也就是~/.profile,注意把 ~/anaconda/bin放到$PATH前,因為bash中執(zhí)行python命令時會按PATH中的順序進行搜索。
我的配置:
#umask 022#ifrunning bashif [ -n "$BASH_VERSION" ]; then# include .bashrcifit existsif [ -f "$HOME/.bashrc" ]; then."$HOME/.bashrc"
fi
fi# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; thenPATH="$HOME/bin:$PATH"
fi# ADD_PATH="$(pwd)"export PATH="$HOME/anaconda3/bin:$PATH"# export PATH="${ADD_PATH}:${PATH}"export GUROBI_HOME="$HOME/tars/gurobi811/linux64"export PATH="${PATH}:${GUROBI_HOME}/bin"export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib"export GRB_LICENCE_FILE="$HOME/gurobi.lic"
安裝完后自己理解了下anaconda對python packages的管理
(base) tandaojun1@node32:~$ python3
Python3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC7.3.0] :: Anaconda, Inc. on linux
Type"help", "copyright", "credits" or "license" for moreinformation.>>>import sys>>>print(sys.path)
['', '/home/tandaojun1/anaconda3/lib/python37.zip', '/home/tandaojun1/anaconda3/lib/python3.7', '/home/tandaojun1/anaconda3/lib/python3.7/lib-dynload', '/home/tandaojun1/anaconda3/lib/python3.7/site-packages']
所以,之后用conda install tensorflow下載的第三方包應(yīng)該是會裝到/home/tandaojun1/anaconda3/lib/python3.7/site-packages目錄下
bash前面的(base)是conda的虛擬環(huán)境,conda activate base進入的是默認虛擬環(huán)境,base換成自己的環(huán)境,前面就當前環(huán)境的環(huán)境名。
另外,conda的虛擬環(huán)境執(zhí)行bash確實有點延遲,,
2.3 Gurobi
這個是我的程序需要的一個求解器,第三方包,conda沒有,需要自己安裝
首先求解器的安裝是從官網(wǎng)wget下載tar.gz文件,然后tar -vxfz gurobi811.tar.gz解壓,目前只是得到了求解器
在~/.profile中添加gurobi相關(guān)的環(huán)境變量(PATH和LD_LIBRARY_PATH),然后grbgetkey獲取licence,再在~/.profile中添加GRB_LICENCE_FILE環(huán)境變量
目前求解器可以求解了,但python還沒有安裝packages,進入到~/gurobi811/linux64/路徑下
python setup.py install
可以自己看下setup.py代碼是怎么寫的,以后也會用到。
3.安裝測試
其實上面已經(jīng)測試了= =,不過可以再記下確認用的是哪個版本(哪個路徑下的sh)的python (也可以用type python)
(base) tandaojun1@node32:~$ whichpython/home/tandaojun1/anaconda3/bin/python
要查看系統(tǒng)中有哪些python:
(base) tandaojun1@node32:~$ whereispython
python:/usr/bin/python3.4 /usr/bin/python3.4m-config /usr/bin/python3.4-config /usr/bin/python3.4m /usr/bin/python2.7 /usr/bin/python2.7-config /usr/bin/python /etc/python3.4 /etc/python2.7 /etc/python /usr/lib/python3.4 /usr/lib/python2.7 /usr/bin/X11/python3.4 /usr/bin/X11/python3.4m-config /usr/bin/X11/python3.4-config /usr/bin/X11/python3.4m /usr/bin/X11/python2.7 /usr/bin/X11/python2.7-config /usr/bin/X11/python /usr/local/lib/python3.4 /usr/local/lib/python2.7 /usr/include/python3.4 /usr/include/python3.4m /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz
4.運行
4.1 命令行python腳本傳參
首先了解下命令行中怎么在執(zhí)行python文件時傳入?yún)?shù),可以參考 命令行運行Python腳本時傳入?yún)?shù)的三種方式
4.2 python import model
其次是理解下python的import機制,因為windows下pycharm會幫你把sys.path(上面演示的)等給你預置好了,直接執(zhí)行就可以,但在命令行中執(zhí)行會遇到ModuleNotFoundError。
我看的關(guān)于Python的import機制原理,主要是知道python從哪import models。
明白了這個,接下來就是怎么讓python找到自己寫的models。
使用絕對路徑顯然不適用于經(jīng)常換平臺執(zhí)行,但使用相對路徑得確保要執(zhí)行的文件與項目根目錄之間的相對關(guān)系不變,我這代碼還在測試階段,可能會經(jīng)常變動= =,所以想在命令行直接將項目根目錄添加到python找models的列表中。
一開始以為是PATH變量,嘗試將項目目錄添加到PATH變量中,發(fā)現(xiàn)還是會報錯,之后百度了才知道,,,是PYTHONPATH
可以在~/.profile中添加(記得 source ~/.profile),也可以命令行執(zhí)行(每次重新開啟終端都要執(zhí)行)
export PYTHONPATH=~/projects/vnf_flow:$PYTHONPATH
4.3 后臺運行
由于我要跑多個實驗,每個實驗都要輸出一些結(jié)果,所以需要進程后臺運行,
screen就很不錯,可以參考Linux后臺運行任務(wù)
總結(jié)
以上是生活随笔為你收集整理的python可以在linux运行_服务器(Linux)上运行python总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网申光大时尚cosmo信用卡多久下卡
- 下一篇: linux传文件file,linux文件