小编Sta*_*Kit的帖子

如何以正确的方式为独立的 Python 应用程序制作 setup.py?

我已经阅读了几个类似的主题,但还没有成功。我觉得我错过或误解了一些基本的东西,这就是我失败的原因。
我有一个用 python 编写的“应用程序”,我想在标准 setup.py 的帮助下进行部署。由于功能复杂,它由不同的 python 模块组成。但是单独发布这些模块是没有意义的,因为它们太具体了。
预期结果是将软件包安装在系统中,pip install并且可以通过简单app命令从操作系统命令行获得。
将长篇故事简化为可重现的示例 - 我有以下目录结构:

<root>
  ?? app
  |   ?? aaa
  |   |   ??? module_a.py
  |   ?? bbb
  |   |   ??? module_b.py
  |   ??? app.py
  ?? docs
  |   ??? .....
  ?? tests
  |   ??? .....
  ?? setup.py
Run Code Online (Sandbox Code Playgroud)

下面是模块代码:
app.py

#!/usr/bin/python
from aaa.module_a import method1
from bbb.module_b import method2

def main():
    print("APP main executed")
    method1()
    method2()

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

模块_a.py

def method1():
    print("A1 executed")
Run Code Online (Sandbox Code Playgroud)

模块_b.py

def method2(): …
Run Code Online (Sandbox Code Playgroud)

python setuptools setup.py

7
推荐指数
1
解决办法
631
查看次数

Python 请求 - 如何执行 SAML SSO 登录(例如登录到 login.microsoft.com)?

首先,我用谷歌搜索了这个问题,但发现了一些通用的解释,这些解释并没有让我很好地理解如何做事情。

其次 - 我是有效的系统用户(不是管理员)并且有权访问数据。即,我拥有有效的用户凭据,并且可以手动下载文件,但对于小型自动化,我希望通过 python 脚本从我的 PC 下载文件。

下载本身很简单,唯一的事情是 - 我需要在请求中提供有效的会话 ID cookie。即最后我需要通过最简单的方式获取这个cookie。

如果我对 SAML 的理解是正确的,我是一个用户代理,想要从服务提供商下载一个文件,该文件需要通过身份提供商(Microsoft)对我进行身份验证。通常我通过浏览器执行此操作,现在我可以在 PySide6 (QWebEngineView) 的帮助下模拟它。我首先在 QWebEngineView 中加载目标 URL。实际上,它是一个小型嵌入式 Web 浏览器,它将我重定向到 login.microsoft.com,询问凭据,然后将我重定向回服务提供商站点并设置会话 ID cookie。然后我就可以在我的请求中使用这个 cookie。它有效,但如果可能的话我想摆脱 GUI (PySide)。

我决定复制浏览器的流程,但几乎一开始就失败了。会发生什么:

  1. 我正在使用通常的获取请求从我的服务提供商端请求文件。
  2. 由于我未经过身份验证,服务提供商使用 HTML 页面(而不是目标文件)进行回复。
  3. 此 HTML 页面包含由 onPageLoad 事件触发的 Java 脚本 - 此 Java 脚本只是将浏览器重定向到 login.microsoft.com(带有一些参数的长 URL)。
  4. 使用此长 URL 的 login.microsoft.com 的下一个请求以“302 Moved Temporarily”结尾,“Location”标头中具有相同的 URL。当我使用这个 URL 时,它再次给出具有相同 URL 的 302。在相同的情况下,浏览器仅获得两次重定向,并最终收到来自 microsoft.com 的带有登录名/密码请求的网页 URL。

我知道当我再次使用 302 响应的“位置”标头中提供的 URL 时,我应该添加更多标头/cookie。但是...我不知道login.microsoft.com 在这里期望什么。所以我的问题是 - 是否有任何描述此消息流的来源?或者也许有人已经这样做了,可以给我如何继续的建议?

我发现了一些与 SAML 相关的 python 库,但我发现 x509 证书和更多内容的配置非常复杂 - …

python saml single-sign-on

5
推荐指数
0
解决办法
2718
查看次数

标签 统计

python ×2

saml ×1

setup.py ×1

setuptools ×1

single-sign-on ×1