外網(wǎng)訪問 pydoc 文檔

近期在做一個團隊項目,產(chǎn)生大量的函數(shù)與類,不好查找也不好團隊使用,最原生的python代碼文檔格式查閱困難,所以就有了做標準API文檔的念頭。

經(jīng)過bing、百度、google最終確定了大體的思路:

在云端用python原生的pydoc自動生成項目文檔

  • 環(huán)境

    1. 阿里云ECS 1核2GB CentOS7
    2. anaconda3 ---python3.6版本
    3. 遵循PEP8風格規(guī)范的項目源文件
  • 配置過程

    1. 在本地嘗試使用pydoc -w <name>生成離線文檔:只能生成一個py文件的html文檔,調(diào)用包的文檔有頁面鏈接但是沒有對應(yīng)的html文件,需要一次手動生成或者分析網(wǎng)頁結(jié)構(gòu)寫自動化生成程序

    2. 在本地嘗試使用pydoc -p port啟動指定端口的web服務(wù),本地查看成功,內(nèi)容詳細,鏈接關(guān)聯(lián)度很強

    3. 嘗試放入ECS,使用FileZilla Client將工程文件傳入指定的非root用戶文件夾內(nèi),在ECS中的工程文件夾路徑下使用命令$ pydoc -p port啟動web服務(wù)器。外網(wǎng)嘗試訪問,失敗。

    4. 排除是阿里云安全組的影響后,把問題確定在pydoc本身的問題上。

    5. 在ECS的anaconda3路徑下用find命令查找pydoc.py文件

      $ find . -name pydoc.py
      ./lib/python3.6/pydoc.py
      ./pkgs/python-3.6.4..................
      ./pkgs/..............................
      
    6. 找到了,然后使用vim查看/修改pydoc.py,這里可以直接在本地電腦上查看,然后在ECS上修改,借鑒了一位大大的記錄博客直接在pydoc.py中查找host字段

      vim在正常模式下用/host查找

      self.host = "localhost"語句的localhost改為<u>ECS的內(nèi)網(wǎng)ip</u>這里是一個坑,ECS是不知道自己的公網(wǎng)IP的,也不能和jupyter notebook一樣寫*。

    7. 外網(wǎng)嘗試訪問ECS公網(wǎng)IP:port成功訪問。

    8. $ screen -R pydoc建立一個新的shell。輸入$ pydoc -p port啟動web服務(wù)。

    9. Ctrl+a再按d退出新shell窗口

      $ logout登出ssh連接

    這樣配置就完成了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容