• <menu id="w2i4a"></menu>
  • logo 在PyCharm中配置項目

    文檔首頁>>在PyCharm中配置項目>>在PyCharm中配置項目(十一):使用Docker配置遠(yuǎn)程解釋器

    在PyCharm中配置項目(十一):使用Docker配置遠(yuǎn)程解釋器


    PyCharm是一種Python IDE,其帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具。此外,該IDE提供了一些高級功能,以用于Django框架下的專業(yè)Web開發(fā)。

    PyCharm最新版本2019.3現(xiàn)已發(fā)布,增加用于Jupyter筆記本的交互式小部件,MongoDB支持以及所有Python 3.8功能的代碼幫助,還有其他功能改進(jìn)提高Python語言開發(fā)效率!小編已將PyCharm2019.3安裝包上傳至慧都官網(wǎng),感興趣的朋友歡迎下載體驗~

    點擊下載PyCharm最新版2019.3

    摘要

    讓我們總結(jié)一下在PyCharm的幫助下所做的事情:

    • 我們創(chuàng)建了一個項目并添加了Python腳本。

    • 我們配置了遠(yuǎn)程解釋器。

    • 我們在Docker容器中運(yùn)行并調(diào)試了腳本。

    • 最后,我們啟動了Docker工具窗口,并在Terminal中看到了所有可見的細(xì)節(jié)。

    先決條件

    確保滿足以下先決條件:

    • Docker已安裝,如Docker Docs頁面上所述。您可以在各種平臺上安裝Docker,但是在這里我們將使用 Windows 安裝。

      請注意,您可能想在不同的平臺上重復(fù)本教程。然后將Docker安裝用于macOS 和 Linux(Ubuntu,也提供其他與發(fā)行版相關(guān)的說明)。

    • 您的網(wǎng)絡(luò)連接穩(wěn)定。

    • 要使用Docker進(jìn)行操作,您需要在計算機(jī)上使用busybox映像。確保您具有穩(wěn)定的Internet連接,以便PyCharm可以下載并運(yùn)行busybox:latest。成功配置Docker后,您可以脫機(jī)。

    • 在開始使用Docker之前,請確保已啟用Docker插件。該插件與PyCharm捆綁在一起,并且默認(rèn)情況下處于激活狀態(tài)。如果未激活插件,請在“ 插件”頁面上啟用它的設(shè)置/首對話框 Ctrl+Alt+S 中描述 管理插件。

      如果您正在使用Windows 的Docker,請在Docker設(shè)置的`` 常規(guī)''部分中啟用tcp:// localhost:2375上沒有TLS選項的Expose守護(hù)程序。

    • 同樣,對于Windows,右鍵單擊Docker whale圖標(biāo),從上下文菜單中選擇“設(shè)置”,然后在“常規(guī)”頁面中,選擇“ 公開守護(hù)程序...”復(fù)選框:


    準(zhǔn)備一個例子

    創(chuàng)建一個Python項目QuadraticEquation,添加 Solver.py文件并輸入以下代碼:

    import math
    
    class Solver:
    
        def demo(self, a, b, c):
            d = b ** 2 - 4 * a * c
            if d > 0:
                disc = math.sqrt(d)
                root1 = (-b + disc) / (2 * a)
                root2 = (-b - disc) / (2 * a)
                return root1, root2
            elif d == 0:
                return -b / (2 * a)
            else:
                return "This equation has no roots"
    
    
    if __name__ == '__main__':
        solver = Solver()
    
        while True:
            a = int(input("a: "))
            b = int(input("b: "))
            c = int(input("c: "))
            result = solver.demo(a, b, c)
            print(result)


    將Docker配置為遠(yuǎn)程解釋器

    現(xiàn)在,我們已經(jīng)準(zhǔn)備好示例,讓我們定義一個基于Docker的遠(yuǎn)程解釋器。

    確保已在計算機(jī)上下載并安裝了Python。

    通過以下兩種方式打開“ 添加Python解釋器”對話框:

    • 當(dāng)您在編輯器中時,最方便的方法是使用用戶界面概述中的Python Interpreter小部件。單擊小部件,然后選擇添加解釋器...

    • 如果在“ 設(shè)置/首選項”對話框中Ctrl+Alt+S,選擇“ 項目<項目名稱> |項目”。項目口譯員。單擊配置項目解釋器圖標(biāo),然后選擇添加。

    在打開的對話框中,選擇Docker選項,從下拉列表中選擇Docker服務(wù)器(如果缺少該服務(wù)器,請單擊New ...),然后指定映像名稱。

    Python解釋器路徑應(yīng)具有默認(rèn)值:


    結(jié)果,在“設(shè)置”對話框中,您應(yīng)該看到類似以下內(nèi)容:


    單擊確定以應(yīng)用更改并關(guān)閉對話框。

    在Docker容器中運(yùn)行您的應(yīng)用程序

    在main子句旁邊的左側(cè)裝訂線中,單擊 跑按鈕,然后選擇 “運(yùn)行'Solver.py'”命令。您會看到您的腳本在Docker容器中運(yùn)行:


    如您所見,“運(yùn)行工具”窗口中的前綴顯示了容器ID。

    在Docker容器中調(diào)試應(yīng)用程序

    接下來,讓我們調(diào)試我們的應(yīng)用程序。為此,讓我們在計算的行上放置一個斷點d,然后單擊 跑并選擇Debug'Solver' 。

    如您在“調(diào)試工具”窗口的“控制臺”選項卡中所見,調(diào)試器也在Docker容器中運(yùn)行:


    但是現(xiàn)在此容器具有不同的ID,因此也具有不同的名稱。您可以在終端中看到它:輸入docker ps命令并查看容器ID和名稱:

    當(dāng)以任何方式執(zhí)行應(yīng)用程序時,PyCharm創(chuàng)建一個新容器很重要。無論是運(yùn)行,調(diào)試,覆蓋測試還是測試,每次執(zhí)行都需要一個新容器!


    Docker工具窗口

    但是是否可以在沒有終端的情況下看到所有容器?PyCharm說-是的。您可以將“ 服務(wù)”工具窗口中的Docker”選項卡用作Docker命令行客戶端的UI。

    如果您已將Docker配置為遠(yuǎn)程解釋器,則將在PyCharm主窗口底部看到“ 服務(wù)”工具窗口按鈕。單擊此按鈕,查看docker容器:

    • 首先,我們連接到Docker守護(hù)程序:

    • 其次,如果打開“運(yùn)行”工具窗口,我們將在Docker工具窗口的“屬性”選項卡中看到Docker前綴與容器ID相對應(yīng):

    • 第三,如果打開“調(diào)試工具”窗口,我們將在Docker工具窗口的“屬性”選項卡中看到Docker前綴(另一個!)對應(yīng)于另一個容器ID:

    • 最后,我們看到了容器的奇怪名稱-它們是人類可讀的,由Docker本身生成。

    =====================================================

    有關(guān)詳細(xì)信息,請繼續(xù)關(guān)注我們接下來的系列教程“在PyCharm中配置項目”。我們很快就會發(fā)布其他文章。

    想要了解或購買PyCharm正版授權(quán)的朋友可以咨詢慧都官方客服

    關(guān)注下方微信公眾號,及時獲取產(chǎn)品最新消息和最新資訊

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();