在我們平時使用PyCharm的過程中,一般都是連接本地的Python環境進行開發,但是如果是離線的環境呢?這樣就不好搭建Python開發環境,因為第三方模塊的依賴復雜,不好通過離線安裝包的方式安裝。本文將介紹如何利用PyCharm來連接Docker鏡像,從而搭建Python開發環境。
首先,我們需要准備一下工具:
- PyCharm專業版
- Docker
我們用一個示例項目來演示在PyCharm中如何利用Docker鏡像搭建Python開發環境。項目的截圖如下:
注意到,在該項目中還沒有設置Python開發環境
,External Libraries為空,到時候我們將用Docker中的Python環境作為該項目的Python開發環境。
第一步,我們需要制作Docker鏡像
,該鏡像的Dockerfile文件(python_dev.build)如下:
FROM centos:7.2.1511
# author label
LABEL maintainer="jclian"
# install related packages
ENV ENVIRONMENT DOCKER_PROD
RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& yum makecache \
&& yum install -y wget aclocal automake autoconf make gcc gcc-c++ python-devel mysql-devel bzip2 libffi-devel epel-release \
&& yum clean all
# install python 3.7.0
RUN wget https://npm.taobao.org/mirrors/python/3.7.0/Python-3.7.0.tar.xz \
&& tar -xvf Python-3.7.0.tar.xz -C /usr/local/ \
&& rm -rf Python-3.7.0.tar.xz \
&& cd /usr/local/Python-3.7.0 \
&& ./configure && make && make install
# install related packages
RUN yum install -y python-pip \
&& yum install -y python-setuptools \
&& mkdir -m 755 -p /etc/supervisor/conf.d \
&& yum install -y supervisor \
&& pip3 install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& pip3 install setuptools==33.1.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& pip3 install jieba -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& pip3 install tornado==5.1.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& yum clean all
# expost port
EXPOSE 15731
在這個CentOS系統中,我們安裝了Python3.7.0,同時又安裝了兩個第三方模塊jieba和tornado。接着我們運行build.sh腳本,內容如下:
TIMENOW=`date +%y.%m.%d.%H%M`
# 進行docker鏡像打包
# -f 指定文件 , -t 指定生成鏡像名稱 , 冒號后為版本號 ,例子 : docker_package:17.08.01.1311
docker build -f python_env.build -t python_env:${TIMENOW} .
運行后,我們生成的Docker鏡像名稱為:python_env:19.12.25.0008。
接着我們在Python中使用Docker鏡像配置Python Interpreter。在系統的設置界面中,選擇“Project Interpreter”,點擊“Project Interpreter”右側的小齒輪,選擇“Add”,截圖如下:
在彈出的界面中,選擇“Docker”,右側的Server一般默認為本地的Docker,等待一會兒它會提示連接成功,當然你也可以選擇遠程服務器的Docker,這個設置這里不再講述。連接Docker成功后,選擇“Image name”,這里選擇我們剛打好的Docker鏡像python_env,“Python interpreter path”為容器中的Python路徑,我們這里輸入“/usr/local/Python-3.7.0/python”,如下圖所示:
點擊“OK”鍵,等待一會兒,然后彈出的界面如下:
出現該圖表示連接Docker鏡像成功,同時能看到該Python環境安裝的第三方模塊。
最后我們再測試一下該Python環境是否能進行開發,示例的Python代碼(f_write.py)如下:
# -*- coding: utf-8 -*-
# author: Jclian91
# place: Pudong Shanghai
# time: 12:04 上午
import jieba
if __name__ == '__main__':
sent = '三亞的風景很不錯,一派南國風光。'
print(list(jieba.cut(sent)))
輸出結果如下:
可以看到,Python的運行結果正常,這說明Python開發環境真的可以使用了。
本次分享到此結束,感謝大家的閱讀。該演示項目已經分享至Github,網址為:https://github.com/percent4/Docker_env_test 。
注意
:不妨了解下筆者的微信公眾號: Python爬蟲與算法(微信號為:easy_web_scrape), 歡迎大家關注~