Pathon_包

模块

—> module and package

包 : 包是用过使用 '.模块名’来组织Python模块名称空间的防是。

—> 具体,包就是一个包含 __init__.py文件的文件夹

  • 目的:用文件夹将文件/模块组织起来。

注意:

python3,即使包中没有__init__.py也可以使用;

python2,若没有__init__.py 报错

创建包的目的不是为了运行,而是为了被导入使用。

包的本质依然还是模块。

  • 使用时, import导入, 导入带点的, 点的最左边一定是包名。
  • import导入文件时,产生名称空间的名字源于文件,import

包,名称空间同样源于文件(包),__init__.py,导入包的本只导入它。

新建

➜  day8 tree
.
├── api
│   ├── __init__.py
│   ├── students.py
│   └── versions.py
├── cmd
│   ├── __init__.py
│   └── manage.py
├── db
│   ├── __init__.py
│   └── models.py
└── __init__.py
└── testpy
在新建 day8文件夹  同级 新建test.py
在day8中新建 各文件如 树

最外层 __init__.py 调用各文件夹
from .import cmd
from .import db
from . import api

再各级__init__.py中调用同级的.py模块
from .import students     #api 中
from .import versions

from .import manage    #cmd中

from . import models  #db中

在各个模块中 创建函数
如 student.py
def get():
    print('from students.py')
    
在test中调用get 方法如下 
import day8      #导入day8模块
day8.api.students.get()

from … import… 时, import后导入的模块,必须时一个不包含点(.) 否则报错

在api 的__init__.py中输入

from .import students
from .import versions

a = 6688
def func():
    print('api---> __init__.py')

__all__ =['students','versions','a', 'func']

特殊变量__all__ ,在调用 api时 可调用__all__中包含的所有元素

test中 以 import * 调用api中所有模块

from day8.api import *
students.get()
versions.create_resource(1)
func()
print(a)

from students.py
from versions.py.py 1
api---> __init__.py
6688

在day/api/versions.py中导入day8/cmd/manage.py

versions中写入

from day8.cmd import manage

这样我们在test中调用 version就可以继续调用附模块

from day8.api import versions
versions.manage.main()
<think>好的,用户想了解Python部署的相关方法和教程。首先,我需要整理一下已有的引用内容,看看有哪些相关的信息可以提供给用户。 根据引用[1],提到了PaddleOCR的Python部署方法,特别是安装paddlepaddle的具体命令。这可能涉及到深度学习框架的部署步骤,需要详细说明。 引用[2]是关于Python Web项目部署的详细教程,括下载Python源码和安装依赖的步骤。这里可能需要分步骤讲解如何从源码编译安装Python,以及配置Web服务器如Nginx或Apache的方法。 引用[3]提到Python各个方向的技术点整理,可能可以引导用户到更全面的资源库学习,但具体部署相关的知识点可能需要进一步展开。 引用[4]比较偏向程序员自我提升,可能和部署技术关联不大,暂时可以不考虑。 接下来,我需要将用户的问题分解为几个部分:部署方法可能括环境配置、依赖管理、Web部署、打分发等。结合引用中的信息,重点放在环境配置和Web部署上。 首先,环境配置方面,引用[2]提到了源码安装Python的步骤,可以详细列出安装依赖、编译安装的过程,以及虚拟环境的使用。引用[1]中的paddlepaddle安装命令也是一个例子,说明特定库的安装方法。 其次,Web项目部署部分,可能需要介绍WSGI服务器如Gunicorn或uWSGI,配合Nginx反向代理的配置,这也是常见的部署方式。虽然引用中没有直接提到,但结合一般知识,可以补充这些内容。 另外,打和分发方面,可以使用PyInstaller或Docker,这些内容引用中没有提到,可能需要作为补充建议,但需要确保正确性。 需要注意引用来源的准确性,比如引用[1]和[2]的具体步骤需要正确无误地呈现,同时按照用户要求,在引用处添加标识。比如安装paddlepaddle的命令来自引用[1],Python源码安装步骤来自引用[2]。 用户可能需要的是分步骤的教程,因此结构要清晰,分点说明不同部署场景的方法,如环境配置、Web部署、打工具等。每个步骤给出具体命令或代码示例,并注明引用来源。 最后,生成的相关问题需要围绕Python部署的常见疑问,比如虚拟环境的作用、WSGI服务器选择、Docker优势等,这些问题应能帮助用户进一步深入学习。</think>### Python部署方法及教程分步说明 #### 一、环境配置部署 1. **Python环境安装** - 源码编译安装(推荐Linux服务器部署): ```bash yum install wget -y cd /data/ wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz tar -zxvf Python-3.9.5.tgz cd Python-3.9.5 ./configure --prefix=/usr/local/python3 make && make install ``` 该方式可获得定制化Python环境[^2] 2. **虚拟环境配置** ```bash python -m venv myenv # 创建虚拟环境 source myenv/bin/activate # 激活环境 ``` #### 二、项目依赖部署 1. **依赖库安装** - 常规库安装: ```bash pip install -r requirements.txt ``` - 特定框架安装(如PaddlePaddle): ```bash python -m pip install paddlepaddle==2.2.2 -i https://mirror.baidu.com/pypi/simple [^1] ``` 2. **依赖管理工具** ```bash pip freeze > requirements.txt # 生成依赖清单 ``` #### 三、Web项目部署 1. **WSGI服务器配置** ```bash pip install gunicorn gunicorn -w 4 -b 0.0.0.0:8000 myapp:app ``` 2. **Nginx反向代理配置** ```nginx server { listen 80; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; } } ``` #### 四、打分发部署 1. **PyInstaller打** ```bash pip install pyinstaller pyinstaller -F your_script.py ``` 2. **Docker容器化部署** ```dockerfile FROM python:3.9-slim COPY . /app WORKDIR /app RUN pip install -r requirements.txt CMD ["python", "main.py"] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值