是否有一种方法可以设置SimpleHTTPServer或BaseHTTPServer要启动的目录?
如果你直接从命令行使用 SimpleHTTPServer
,你可以简单地使用shell功能:
pushd /path/you/want/to/serve; python -m SimpleHTTPServer; popd
在Python 3中,你需要使用:
pushd /path/you/want/to/serve; python -m http.server; popd
SimpleHTTPServer模块已经在Python 3.0中合并到http.server中。
SimpleHTTPRequestHandler
接收一个 directory
参数,默认值为当前目录:def __init__(self, *args, directory=None, **kwargs):
if directory is None:
directory = os.getcwd()
import http.server
class Handler(http.server.SimpleHTTPRequestHandler):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs, directory='/path/to/your/dir')
def main():
http.server.test(Handler) # test(Handler, port=8080)
if __name__ == '__main__':
main()
directory
参数设置为/dev/null
。 - undefinedmicroserver.sh
),并将其放在里面。#!/bin/bash
pushd /your/directory/
python -m SimpleHTTPServer 8000 &> /dev/null &
popd
然后,更改权限:
chmod +x microserver.sh
并执行它:
./microserver.sh
〜/ .bashrc
中,在启动用户会话时启动服务器。只需在.bashrc
的末尾添加此内容即可。. ./microserver.sh
在Linux上不更改目录进行操作:
注意:保留HTML标记。
bash -c "cd /your/path; python -m SimpleHTTPServer"
os.setcwd()
——这是同样的事情。 - S.Lott