FastApi接口文档/docs中静态资源文件修改为本地文件以及Ubuntu下python报错ModuleNotFoundError: No module named apt_pkg的解决

一、FastApi接口文档/docs中静态资源文件修改为本地文件

        FastApi可以直接生成接口文档,但生成的接口页面中引用的是外网的资源,包括favicon.png文件和js,css文件,引用如下:

<link type="text/css" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swagger-ui-dist@3.30.0/swagger-ui.css">
<link rel="shortcut icon" href="https://fastapi.tiangolo.com/img/favicon.png">
<title>FastAPI - Swagger UI</title>
</head>
<body>
<div id="swagger-ui">
</div>
<script src="https://cdn.jsdelivr.net/npm/swagger-ui-dist@3.30.0/swagger-ui-bundle.js"></script>

        在某些情况下,本地开发时不允许访问外网,于是就想将这些文件修改为本地文件,试着找了一下了,发现了其引用的位置。我这里使用的是Anaconda集成环境,你可以尝试找fastapi代码包的地址,我的地址如下:D:\Anaconda3\Lib\site-packages\fastapi\openapi。在此fastapi的目录中的docs.py文件里配置了get_swagger_ui_html,包括上面三个html元素的地址,修改这里为本地的地址即可。如下:

#. 文章评论:

Level : 1.    User:us20210203100012-136    Time:2021-02-18 09:43:05
大佬 不行啊 chrome提示not allowed to load local resource

Level : 2.    User:us20210312094212-523    Time:2021-03-12 09:44:55
不应该这样做,而是参考官方文档,设置static目录。https://fastapi.tiangolo.com/advanced/extending-openapi/?h=get_swagger_ui_html

Level : 3.    User:us20210318085028-832    Time:2021-03-18 08:54:53
[04007回复level2]:嗯,之前没找到文档,方法可行,比较正规。

Level : 4.    User:us20210318085028-832    Time:2021-03-18 08:55:28
[04007回复level1]:修改了地址也同时要把资源文件下载存放到地址对应的目录。

Level : 5.    User:us20220519104403-382    Time:2022-05-19 11:37:16
想问下怎么引用本地文件?

Level : 6.    User:us20220524191855-134    Time:2022-05-24 19:19:53
[04007回复level5]: 见这篇文章:http://www.***.cn/article/1142.html (现已失效,请在CSDN博客中搜索:FastApi自定义接口文档/docs中的静态资源文件 )

二、Ubuntu下python报错ModuleNotFoundError: No module named apt_pkg的解决

        某台新服务器拿到手之后登录上去执行很多操作都报错:ModuleNotFoundError: No module named 'apt_pkg';包括apt-get update操作等。此问题出现的原因多是服务器上的python版本混乱导致的,而某个python版本又缺少对应版本的apt_pkg模块从而引发这个错误。

        问题解决的思路。首先排查当前使用的python和python3的版本,我一般在服务器上都会统一这两个版本;第二查找当前服务器上的apt_pkg模块的版本。apt_pkg模块放在python目录下的dist-packages目录下。过程如下:

#查看当前python版本
root@back:~# which python
root@back:~# whereis python
python: /usr/bin/python3.6 /usr/bin/python3.8 /usr/lib/python3.6 /usr/lib/python3.7 /usr/lib/python3.8 /usr/lib/python2.7 /etc/python3.6 /etc/pyth
#查看python3最终的执行文件路径
root@back:~# which python3 
/usr/bin/python3
root@back:/usr/lib# ll /usr/bin/python3
lrwxrwxrwx 1 root root 25 Sep 16 15:47 /usr/bin/python3 -> /etc/alternatives/python3*
root@back:/usr/lib# ll /etc/alternatives/python3 
lrwxrwxrwx 1 root root 18 Sep 16 15:48 /etc/alternatives/python3* -> /usr/bin/python3.8*
#查看当前apt_pkg的版本
root@back:/usr/lib# ll /usr/lib/python3/dist-packages/ |grep apt_pkg
-rw-r--r--  1 root root 316040 Feb 21 2018 apt_pkg.cpython-36m-x86_64-linux-gnu.so

        解决办法我认为可以有两种:

        一种是根据当前存在的apt_pkg模块,将当前的python环境版本调整至apt_pkg模块的版本,比如apt_pkg.cpython-36m-x86_64-linux-gnu.so 这里的-36m-就是表示是python3.6版本,则可以把当前的python版本都调整为python3.6版本。

        一种是根据你要使用的python环境版本来增加apt_pkg模块,比如你要调整为python3.8版本, 则需要下载apt_pkg.cpython-38m-x86_64-linux-gnu.so文件,可以尝试将这个文件复制然后改一下名字,有可能有效。但我未进行尝试。

        解决方法:更改找到最终python链接修改其至python3.6, 同时我喜欢直接使用python命令也指向3.6。如此即可。

root@back:/usr/lib# ln -sf /usr/bin/python3.6 /etc/alternatives/python3
root@back:/usr/lib# ln -s /usr/bin/python3 /usr/bin/python
当你升级Python后,出现"ModuleNotFoundError: No module named 'apt_pkg'"的错误,可以按照以下步骤解决该问题: 1. 首先,确认你已经安装了正确的Python版本。可以使用命令`python3 --version`来检查当前Python版本是否正确。 2. 如果你确认Python版本正确,那么可能是因为缺少相关的包或模块导致的。你可以尝试使用以下命令安装缺少的模块: ``` sudo apt-get install python3-apt ``` 这个命令会安装`python3-apt`包,其包含了`apt_pkg`模块所需的文件。 3. 如果安装依赖包后问题仍然存在,可能是因为升级Python后未正确更新环境变量导致的。你可以尝试使用以下命令更新环境变量: ``` sudo apt-get update sudo apt-get upgrade ``` 这个命令将会更新系统所有的软件包和依赖项,确保它们与新的Python版本兼容。 4. 如果问题仍然存在,你可以尝试重新安装`apt_pkg`模块。可以使用以下命令进行重新安装: ``` sudo apt-get install --reinstall python3-apt ``` 这个命令会重新安装`python3-apt`包,同时重新配置`apt_pkg`模块。 通过按照上述步骤进行操作,你应该能够解决"ModuleNotFoundError: No module named 'apt_pkg'"的问题。请注意,在操作过程要确保使用管理员权限执行命令。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Ubuntu18.04升级Python3.8后报错ModuleNotFoundError: No module namedapt_pkg](https://blog.csdn.net/qq_51182466/article/details/120378515)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Ubuntu升级pythonModuleNotFoundError: No module namedapt_pkg‘ && ‘apt_inst’ 异常](https://blog.csdn.net/a13568hki/article/details/125917833)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林戈的IT生涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值