PyCharm使用Docker鏡像搭建Python開發(fā)環(huán)境
在我們平時(shí)使用PyCharm的過(guò)程中,一般都是連接本地的Python環(huán)境進(jìn)行開發(fā),但是如果是離線的環(huán)境呢?這樣就不好搭建Python開發(fā)環(huán)境,因?yàn)榈谌侥K的依賴復(fù)雜,不好通過(guò)離線安裝包的方式安裝。本文將介紹如何利用PyCharm來(lái)連接Docker鏡像,從而搭建Python開發(fā)環(huán)境。
首先,我們需要準(zhǔn)備一下工具:
- PyCharm專業(yè)版
- Docker
我們用一個(gè)示例項(xiàng)目來(lái)演示在PyCharm中如何利用Docker鏡像搭建Python開發(fā)環(huán)境。項(xiàng)目的截圖如下:
注意到,在該項(xiàng)目中還沒(méi)有設(shè)置Python開發(fā)環(huán)境
,External Libraries為空,到時(shí)候我們將用Docker中的Python環(huán)境作為該項(xiàng)目的Python開發(fā)環(huán)境。
第一步,我們需要制作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
在這個(gè)CentOS系統(tǒng)中,我們安裝了Python3.7.0,同時(shí)又安裝了兩個(gè)第三方模塊jieba和tornado。接著我們運(yùn)行build.sh腳本,內(nèi)容如下:
TIMENOW=`date +%y.%m.%d.%H%M` # 進(jìn)行docker鏡像打包 # -f 指定文件 , -t 指定生成鏡像名稱 , 冒號(hào)后為版本號(hào) ,例子 : docker_package:17.08.01.1311 docker build -f python_env.build -t python_env:${TIMENOW} .
運(yùn)行后,我們生成的Docker鏡像名稱為:python_env:19.12.25.0008。
接著我們?cè)赑ython中使用Docker鏡像配置Python Interpreter。在系統(tǒng)的設(shè)置界面中,選擇“Project Interpreter”,點(diǎn)擊“Project Interpreter”右側(cè)的小齒輪,選擇“Add”,截圖如下:
在彈出的界面中,選擇“Docker”,右側(cè)的Server一般默認(rèn)為本地的Docker,等待一會(huì)兒它會(huì)提示連接成功,當(dāng)然你也可以選擇遠(yuǎn)程服務(wù)器的Docker,這個(gè)設(shè)置這里不再講述。連接Docker成功后,選擇“Image name”,這里選擇我們剛打好的Docker鏡像python_env,“Python interpreter path”為容器中的Python路徑,我們這里輸入“/usr/local/Python-3.7.0/python”,如下圖所示:
點(diǎn)擊“OK”鍵,等待一會(huì)兒,然后彈出的界面如下:
出現(xiàn)該圖表示連接Docker鏡像成功,同時(shí)能看到該P(yáng)ython環(huán)境安裝的第三方模塊。
最后我們?cè)贉y(cè)試一下該P(yáng)ython環(huán)境是否能進(jìn)行開發(fā),示例的Python代碼(f_write.py)如下:
# -*- coding: utf-8 -*- # author: Jclian91 # place: Pudong Shanghai # time: 12:04 上午 import jieba if __name__ == '__main__': sent = '三亞的風(fēng)景很不錯(cuò),一派南國(guó)風(fēng)光。' print(list(jieba.cut(sent)))
輸出結(jié)果如下:
可以看到,Python的運(yùn)行結(jié)果正常,這說(shuō)明Python開發(fā)環(huán)境真的可以使用了。
本次分享到此結(jié)束,感謝大家的閱讀。該演示項(xiàng)目已經(jīng)分享至Github,網(wǎng)址為:https://github.com/percent4/Docker_env_test
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python的Flask項(xiàng)目中獲取請(qǐng)求用戶IP地址 addr問(wèn)題
- Python使用Web框架Flask開發(fā)項(xiàng)目
- 使用Python+Flask開發(fā)博客項(xiàng)目并實(shí)現(xiàn)內(nèi)網(wǎng)穿透
- Python基于Flask框架配置依賴包信息的項(xiàng)目遷移部署
- Dockerfile構(gòu)建一個(gè)Python Flask 鏡像
- Docker制作Python運(yùn)行環(huán)境基礎(chǔ)鏡像的方法步驟
- python?flask項(xiàng)目打包成docker鏡像發(fā)布的過(guò)程
相關(guān)文章
對(duì)python使用http、https代理的實(shí)例講解
今天小編就為大家分享一篇對(duì)python使用http、https代理的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Python解析網(wǎng)頁(yè)源代碼中的115網(wǎng)盤鏈接實(shí)例
這篇文章主要介紹了Python解析網(wǎng)頁(yè)源代碼中的115網(wǎng)盤鏈接實(shí)例,主要采用了正則表達(dá)式re模塊來(lái)實(shí)現(xiàn)該功能,需要的朋友可以參考下2014-09-09python openpyxl提取Excel圖片實(shí)現(xiàn)原理技巧
在這篇文章中,將介紹如何使用openpyxl來(lái)提取Excel中的圖片,以及它的原理和技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01python使用collections模塊的容器數(shù)據(jù)類型高效處理數(shù)據(jù)
這篇文章主要為大家介紹了python使用collections模塊的容器數(shù)據(jù)類型高效處理數(shù)據(jù)的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06SpringBoot中的@MessageMapping注解詳解
這篇文章主要介紹了SpringBoot中的@MessageMapping注解詳解,Spring Boot 提供了對(duì) WebSocket 的支持,其中 @MessageMapping 注解是一個(gè)常用的注解,它可以將一個(gè) Java 方法標(biāo)記為 WebSocket 的消息處理器,需要的朋友可以參考下2023-08-08關(guān)于Django使用 django-celery-beat動(dòng)態(tài)添加定時(shí)任務(wù)的方法
本文給大家介紹Django使用 django-celery-beat動(dòng)態(tài)添加定時(shí)任務(wù)的方法,安裝對(duì)應(yīng)的是celery版本,文中給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-10-10Python實(shí)戰(zhàn)小游戲飛機(jī)大戰(zhàn)詳解
飛機(jī)大戰(zhàn)想必是很多人童年時(shí)期的經(jīng)典游戲,我們依舊能記得抱個(gè)老人機(jī)娛樂(lè)的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫一個(gè)簡(jiǎn)單的飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,需要的朋友可以參考下2021-11-11python 如何將帶小數(shù)的浮點(diǎn)型字符串轉(zhuǎn)換為整數(shù)
在python中如何實(shí)現(xiàn)將帶小數(shù)的浮點(diǎn)型字符串轉(zhuǎn)換為整數(shù)呢?今天小編就為大家介紹一下解決方案,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05