centos---启动一个简单的http服务器python -m SimpleHTTPServer

我们可以很简单的使用  python -m SimpleHTTPServer 快速搭建一个http服务,提供一个文件浏览的web服务。

命令如下:

1
2
3
python -m SimpleHTTPServer 8000
以命令执行路径为
共享目录。

使用上面的命令可以把当前目录发布到8000端口。

但是这条命令是当前运行的,不是后台运行的,也就是说如果Ctrl + C,则该端口就会关闭。

1
python -m SimpleHTTPServer 8000 &

在上述命令的最后加一个 & ,则该命令产生的进程在后台运行,不会影响当前终端的使用(我们在只有一个bash的环境下)。

生成的新的进程为当前bash的子进程,所以,当我们关闭当前bash时,相应的子进程也会被kill掉,这也不是我们想要的结果。

1
nohup python -m SimpleHTTPServer 8000 &

在命令的开头加一个nohup,忽略所有的挂断信号,如果当前bash关闭,则当前进程会挂载到init进程下,成为其子进程,这样即使退出当前用户,其8000端口也可以使用。

浏览器访问:http://{ip}:8000/

curl -L  http://{ip}:8000/test.sh

 

Python的-m参数

1、在命令行中启动Python脚本的时候,经常会用到-m参数,那么-m起了什么作用呢?

2、先看看 python --help 给出的信息:

run library module as a script (terminates option list)

意思是将库中的python模块用作脚本去运行。

 

3、常用例子

python -m SimpleHTTPServer    #python2中启动一个简单的http服务器
python -m http.server    #python3中启动一个简单的http服务器

4、将模块当做脚本去启动有什么用?

  1. python xxx.py
  2. python -m xxx.py

这是两种加载py文件的方式:
1叫做直接运行
2相当于import,叫做当做模块来启动

 

不同的加载py文件的方式,主要是影响sys.path这个属性。sys.path相当于Linux中的PATH

复制代码
复制代码
>>> import sys
>>> sys.path
['', 'D:\\Python3\\lib\\site-packages\\django-1.10.1-py3.5.egg', 'D:\\Python3\\l
ib\\site-packages\\psycopg2-2.6.2-py3.5-win32.egg', 'D:\\Python3\\python35.zip',
 'D:\\Python3\\DLLs', 'D:\\Python3\\lib', 'D:\\Python3', 'D:\\Python3\\lib\\site
-packages']
复制代码
复制代码

这就是当前Python解析器运行的环境,Python解析器会在这些目录下去寻找依赖库。

 

posted @   勇敢の牛肉丸  阅读(2062)  评论(0编辑  收藏  举报
编辑推荐:
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
点击右上角即可分享
微信分享提示