將本地開發環境的依賴項目生成清單文件
1.在本地的開發環境中,env下執行:
1 |
pip3 freeze >requirements.txt |
清單文件將會生成在當前項目目錄下,內容如下所示
1 |
certifi==2018.4.16 |
將生成后的文件上傳到linux服務器
2.將Python項目上傳到服務器
1 |
#略... |
第三步:在linux服務器上為項目創建虛擬環境,並安裝項目所需的依賴
1.切換到pip3所在的目錄 /usr/local/python/bin,執行以下命令
1 |
# 安裝虛擬環境 |
使用pip3 install -r requirements.txt 報:
解決辦法:
我們都知道,想要進行pip升級,其實只要在命令行運行以下代碼即可:
python -m pip install --upgrade pip
但是由於種種原因,該聯網直接下載更新包的方法總是會被不知名的原因打斷,並反復提示上圖的錯誤。經過種種嘗試和網絡上資料搜尋,本人終於試出一種可行方法,其需要三個注意事項:
1.不要直接win+R然后cmd,而是要選擇“開始”—“Windows系統”—“命令提示符”—右鍵“以管理員身份運行”!!!
2.不要用家用WiFi,開手機熱點連接!!!
3.管理員身份運行命令提示符后,使用鏡像下載升級!!!代碼如下:
python -m pip install --upgrade pip -i https://pypi.douban.com/simple
問題一:安裝時報錯ModuleNotFoundError: No module named '_ctypes'的解決辦法
1、執行如下命令:
yum install libffi-devel
2、從"./configure ..."重新安裝
問題二:pip3 install時報錯“pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.”
先安裝openssl-dev,然后重新編譯安裝,只是在編譯的過程中加入 --enable-optimizations
ubuntu:
sudo apt-get install libffi-dev
或者
-
sudo apt-get update
-
-
sudo apt-get upgrade
-
-
sudo apt-get dist-upgrade
-
-
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
-
-
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
-
-
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
-
-
sudo apt-get install libssl-dev openssl
-
-
sudo apt-get install libffi-dev
centos7
yum install libffi-devel -y
第四步:添加自定義系統服務(很重要)
1 |
# 這樣的命令在ssh終端退出后,python進程也會被殺掉 |
需要創建一個自定義的系統服務,來保證python程序能夠在后台運行。
1.創建系統服務
1 |
vim /usr/lib/systemd/system/robot.service |
內容如下:
1 |
[Unit] |
ExecStart為服務啟動時執行的命令,不能用相對路徑, 一定要全路徑。
這里也可以將命令寫到任意的.sh文件中,這里寫.sh文件的全路徑也是可以的。
2.啟用自定義系統服務
1 |
systemctl enable robot |
3.啟動服務
1 |
systemctl start robot |
可以查看進程,確認一下服務是否啟動
1 |
ps aux|grep robot |
完畢!