You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非Python开发者:如何在Unix中运行Python脚本及实现HTTP Basic Auth

嘿,我来帮你一步步解决这两个问题:

1. 在Unix系统中运行Python脚本的方法

有两种常用的方式,选哪种都可以:

  • 直接执行脚本文件
    1. 先给脚本添加执行权限:chmod +x your_script.py(把your_script.py换成你实际的脚本文件名)
    2. 在脚本的第一行加上shebang,告诉系统用哪个Python解释器:#!/usr/bin/env python3(如果你的系统默认Python是2.x,就换成python,不过更推荐用python3)
    3. 现在直接运行脚本:./your_script.py
  • 用Python命令执行
    不需要设置执行权限,直接在终端输入:python3 your_script.py(同样,根据你的Python版本调整为python)
2. 搭建带HTTP Basic Auth的Python应用

看你提到自己不是Python开发者,那我推荐用轻量的Flask框架来实现,步骤超简单:

第一步:安装Flask

在终端运行:pip3 install flask

第二步:编写应用代码

创建一个比如叫auth_app.py的文件,把下面的代码粘进去(记得替换里面的用户名和密码):

from flask import Flask, request, jsonify
from functools import wraps

app = Flask(__name__)

# 定义一个验证HTTP Basic Auth的装饰器,用来保护路由
def requires_auth(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        auth = request.authorization
        # 这里替换成你自己的用户名和密码
        valid_username = "my_user"
        valid_password = "my_secure_pass"
        
        if not auth or auth.username != valid_username or auth.password != valid_password:
            # 返回401未授权状态码
            return jsonify({"message": "请输入正确的账号密码"}), 401
        return f(*args, **kwargs)
    return decorated

# 受保护的接口,只有验证通过才能访问
@app.route('/my-protected-api')
@requires_auth
def protected_api():
    return jsonify({"message": "恭喜你,已成功通过身份验证!"})

if __name__ == '__main__':
    # 启动服务,允许外部访问的话把host改成0.0.0.0
    app.run(host='localhost', port=5000)

第三步:运行应用

在终端输入:python3 auth_app.py

第四步:测试验证

你可以用Unix自带的curl命令测试:
curl -u my_user:my_secure_pass http://localhost:5000/my-protected-api
或者直接在浏览器访问http://localhost:5000/my-protected-api,浏览器会弹出账号密码输入框,输入正确就能看到返回内容啦。

另外补充一下:你之前贴的requests代码是客户端发送带Basic Auth的请求(比如你的应用需要调用其他需要验证的API时用),如果是这个需求,把代码补全就行:

import requests
from requests.auth import HTTPBasicAuth

# 替换成目标API地址和你的账号密码
response = requests.get('https://api.github.com/user', auth=HTTPBasicAuth('你的GitHub用户名', '你的GitHub个人访问令牌'))
# 打印响应状态码和内容
print("响应状态码:", response.status_code)
print("响应内容:", response.json())

内容的提问来源于stack exchange,提问作者menteith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:43:11