近期在做一个团队项目,产生大量的函数与类,不好查找也不好团队使用,最原生的python代码文档格式查阅困难,所以就有了做标准API文档的念头。
经过bing、百度、google最终确定了大体的思路:
在云端用python原生的pydoc自动生成项目文档
-
环境
- 阿里云ECS 1核2GB CentOS7
- anaconda3 ---python3.6版本
- 遵循PEP8风格规范的项目源文件
-
配置过程
在本地尝试使用
pydoc -w <name>
生成离线文档:只能生成一个py文件的html文档,调用包的文档有页面链接但是没有对应的html文件,需要一次手动生成或者分析网页结构写自动化生成程序在本地尝试使用
pydoc -p port
启动指定端口的web服务,本地查看成功,内容详细,链接关联度很强尝试放入ECS,使用FileZilla Client将工程文件传入指定的非root用户文件夹内,在ECS中的工程文件夹路径下使用命令
$ pydoc -p port
启动web服务器。外网尝试访问,失败。排除是阿里云安全组的影响后,把问题确定在pydoc本身的问题上。
-
在ECS的anaconda3路径下用
find
命令查找pydoc.py文件$ find . -name pydoc.py ./lib/python3.6/pydoc.py ./pkgs/python-3.6.4.................. ./pkgs/..............................
-
找到了,然后使用vim查看/修改pydoc.py,这里可以直接在本地电脑上查看,然后在ECS上修改,借鉴了一位大大的记录博客直接在pydoc.py中查找
host
字段vim在正常模式下用
/host
查找将
self.host = "localhost"
语句的localhost改为<u>ECS的内网ip</u>这里是一个坑,ECS是不知道自己的公网IP的,也不能和jupyter notebook一样写*。 外网尝试访问
ECS公网IP:port
成功访问。用
$ screen -R pydoc
建立一个新的shell。输入$ pydoc -p port
启动web服务。-
Ctrl
+a
再按d
退出新shell窗口$ logout
登出ssh连接
这样配置就完成了。