Python3包管理

Python3快速入门(四)Python包管理 一、Python包简介 1、包 Python中使用包管理模块,包通常对应一个目录,必须在目录下创建一个init.py模块,init.py模块的模块名称即为包名,Python才会将目录解析为包。 init.py文件内可以定义初始化包的内容,导入包的内容,限制包内模块的导出。 init.py文件可以为空,也可以是一个模块,其模块名称为包名称。 导入包或包的模块、变量、函数时,**init **.py文... 阅读详情

一、Python包简介

1、包

Python中使用包管理模块,包通常对应一个目录,必须在目录下创建一个init.py模块,init.py模块的模块名称即为包名,Python才会将目录解析为包。
init.py文件内可以定义初始化包的内容,导入包的内容,限制包内模块的导出。
init.py文件可以为空,也可以是一个模块,其模块名称为包名称。
导入包或包的模块、变量、函数时,**init **.py文件会被自动执行。

2、模块

Python中一个.py文件就是一个模块。
Python 中用 import 或者 from…import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数或变量,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数或变量导入,格式为:from somemodule import *

import sys
print('================Python import module==========================')
print('命令行参数为:')
for i in sys.argv:
    print(i)
print("python 路径为", sys.path)

from sys import argv, path  # 导入特定的成员

print('================python from import===================================')
print(argv)
print(path)

对导入的模块进行重命名
Import package.module as name
import导入包或模块时,如果导入模块较多需要换行,可以使用反斜杠,或是将使用小括号将包含所有的模块。
包和模块不会被重复导入。

3、模块的内置变量

模块内部预定义了内置变量:
**name **:当前模块名称
**package **:当前模块所属包的名称
**doc **:当前模块的注释内容
**file **:当前文件

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
# -*- coding:utf-8 -*-
print("name: " + __name__)
print("package: " + (__package__ or "当前模块不属于任何包"))
print("doc: " + (__doc__ or "当前模块没有任何注释"))
print("file: " + __file__)
# name: __main__
# package: 当前模块不属于任何包
# doc: 当前模块没有任何注释
# file: test.py

如果某个文件被当作入口文件,内置变量**package **没有值,name 值为main,**doc **,file 值为文件名称(不含路径)。
每个模块都可以任意写一些没有缩进的代码,并且在载入时自动执行,为了区分模块是主执行文件还是被调用的模块文件,Python引入了一个变量
name
,当文件是被调用时,name的值为模块名,当文件作为入口被执行时,name为’main’。因此,可以在每个模块中写上测试代码,测试代码仅当模块被Python直接执行时才会运行,代码和测试结合在一起,完美实现对测试驱动开发(TDD)的支持。

if __name__ == "__main__":
    function_name()

将一个模块文件作为模块执行而不是应用执行的命令如下:
python3 -m package.module

二、Python包管理

1、导入包和模块

import只能导入包和模块,不能直接导入变量或者函数。对于多层包嵌套后导致导入名称过长,可以为其重命名。

import package1.package2.module_name
import package1
import package1.module_name
import package1.package2.module_name as new_name

导入包和模块时需要避免循环导入,两个或者多个模块文件互相导入会报错。
Python在导入模块时,会执行模块里的所有内容,但多次导入只会执行一次。
Import导入包或模块时,Python 解释器寻找模块的优先级如下:
A、当前目录
B、环境变量PYTHONPATH
C、sys.path(list 类型)
模块在被导入执行时,Python解释器为加快程序的启动速度,会在与模块文件同一目录下自动生成.pyc文件,.pyc是经过编译后的字节码。
Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行。

2、导入变量和函数

导入某个模块的变量,多个使用逗号分隔
from package1.package2.module_name import variable_name

导入某个模块的函数,多个使用逗号分隔
from package1.package2.module_name import function_name
导入某个包的某个模块,多个使用逗号分隔
from package1 import module_name
导入模块的所有变量和函数
from package1.module_name import *
在模块内使用内置all属性指定本模块可以导出的变量或函数,外部导入只能使用指定的变量或函数。
在模块(*.py)中使用导出all列表里的类、函数、变量等成员,否则将导出所有不以下划线开头(私有)的成员,在模块中使用all属性可避免在相互引用时的命名冲突。

#!/usr/bin/python3

__all__ = ["variable1", "variable2", "function_name1", "function_name2"]

variable1 = 0
variable2 = 0

def function_name1(args):
    pass

def function_name2(args):
    pass

在导入变量和函数时,如果变量和函数太多需要换行,则可以使用反斜杠换行或是使用小括号修饰多个变量或函数。

from package1.module_name import variable1, variable2 \
    variable3, function_name1

from package1.module_name import (variable1, variable2, 
                                  function_name2, function_name2)

3、顶级包

顶级包与入口文件 main.py 的位置有关,与 main.py 同级的包是顶级包,因此main.py入口文件不属于任何包。

4、相对导入

相对导入是导入模块时指定被导入模块名称的相对路径。
import 不支持相对导入,只能使用 from … import … 格式实现相对导入,
“ . … … ” 来表示相对路径,一个点表示当前包,两个点表示上一级包,以此类推。
入口文件中没有包的概念,因此不能使用相对导入。
使用相对导入不要超出顶级包,入口文件同级的包都不能使用相对导入。
在main.py如果作为模块执行时,可以使用相对导入,此时使用如下命令执行:
python3 -m main.py

5、绝对导入

绝对导入是导入时必须指定从顶级包到被导入模块名称的完整路径,可以使用import 和 from … import …进行导入。

6、init.py模块

init.py文件存在包的根目录下,当包或者包中的任意模块或模块中变量、函数被导入时,init.py中内容会首先自动被执行。因此,init.py文件可以实现如下应用:
A、限制本包的模块导入
init.py中写入内置函数all,决定哪些模块可以被外部导入。
__all__ = ["module_name1", "module_name2"]
B、批量导入
如果包内多个模块文件都需要用到某些模块文件时,可以在包的init.py文件中导入需要的模块文件,然后就可以在本包不同的模块文件中直接使用导入的模块 。

三、Python项目结构

1、Python文件结构

通常,Python文件结构如下:

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
#!/usr/bin/python3

# 模块文档
"""
    This is an example.
"""

# 模块导入
import sys
import os

# 定义全局变量
debug = True

# 定义类
class class_name:
    pass

# 定义函数
def function_name():
    pass

# 主程序
if __name__ == "__main__":
    function_name()

2、Python项目目录结构

通常,Python项目的目录结构如下:
README:项目说明文档。
bin(scripts):存放项目的可执行脚本。
project_name:存放项目的所有源代码,程序的入口文件最好命名为main.py。
docs: 存放项目文档。
tests:测试代码目录。
extras:项目扩展部分,不属于项目必需的部分,存放与项目相关的sample、poc,通常子目录如下dev_example、production_example、test1_poc、test2_poc。
setup.py:项目安装、部署、打包的脚本。
requirements.txt:存放软件依赖的外部Python包列表。
README:项目说明文件。
LICENSE.txt:版权声明
ChangeLog.txt:版本变更日志记录
AUTHORS:作者清单
INSTALL:安装说明
MANIFEST.in:装箱清单文件
MAKEFILE:编译脚本

四、pipenv包管理工具

1、pipenv简介

Python项目开发中,在开发需求完成并测试好后,需要发布到正式服务器,此时会面临环境依赖问题。Python项目可能会有多个第三方模块包,并且可能会有版本约束问题,因此需要一个虚拟环境,在虚拟环境里面模拟出跟服务器相同的环境。
pipenv ,全称为Python Development Workflow for Humans,旨在为开发项目自动创建和管理虚拟环境并管理 Python 包,是virtualenv 和pip的合集,通过创建指定python版本的虚拟环境和安装依赖包,提供各个项目隔离的开发环境。

2、pipenv安装

对于Python3,安装命令如下:
pip3 install pipenv
安装结果查看:
pipenv –version

3、pipenv常用命令

pipenv --three
pipenv – two
pipenv --python 3.x.x
pipenv --python 2.x.x
创建虚拟环境,并指定Python版本
pipenv shell从系统环境切换到虚拟环境
pipenv install xxxx在虚拟环境安装软件包
exit退出虚拟环境
pipenv uninstall [module_name] 删除Python包
pipenv --rm删除虚拟环境
pipenv --where 列出本地工程路径
pipenv --venv 列出虚拟环境路径
pipenv --py 列出虚拟环境的Python可执行文件
pipenv install 创建虚拟环境
pipenv install [moduel] 安装包
pipenv install [moduel] --dev 安装包到开发环境
pipenv uninstall [module] 卸载包
pipenv graph 查看包依赖
pipenv lock 生成lockfile
pipenv run python [pyfile] 运行py文件
pipenv uninstall --all 卸载全部包并从Pipfile中移除

4、更换源

pipenv默认的Pipfile 文件中指定使用官方源锁定依赖,会导致速度过慢,解决方案自然是更换国内源,常用国内源如下:
阿里云:http://mirrors.aliyun.com/pypi/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学:https://pypi.mirrors.ustc.edu.cn/simple/
源更换需要将Pipfile 文件中url的值替换为国内源。

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!交流经验!自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

[[source]]
name = "pypi"
url = "http://mirrors.aliyun.com/pypi/simple/ "
verify_ssl = true

[dev-packages]

[packages]
pymysql = "*"
pymango = "*"
mysql-connector = "*"
mysqldb = "*"
mysql-python = "*"

[requires]
python_version = "3.7"
如何使用Pip进行Python包管理 Pip是Python包管理器,它允许您轻松地安装和管理Python包。通过使用Pip,您可以从Python Package Index(PyPI)中安装、升级和卸载Python包。本文详细介绍了如何使用Pip进行Python包管理,包括安装、升级、卸载Python包以及使用虚拟环境隔离项目依赖。在开发Python项目时,为了确保项目的可移植性和可重现性,通常需要将项目的依赖项记录在一个文件中。为了避免不同项目之间的依赖冲突,可以使用Python的虚拟环境功能为每个项目创建一个独立的环境。 阅读详情

相关推荐

python3包管理全部详解

假如在项目中创建一个subnet文件夹(包),包涵2个模块 tiny_http.py和tiny_socket.py tiny_http.py中有接口 http_get(url,param=None) tiny_socket.py中有接口 create_server(ip='127.0.0.1',port=8080) #方法1 直接从包的模块中引用 #如果包中有多个模块,就要多次import #python3无需在包下加__init__.py文件 from subnet...

xiaoxiaoyu85的专栏 424

探索 Python 包管理基础

Python 的世界中,包管理器是提高开发效率和保证代码质量的关键工具。它们不仅极大地简化了代码库的管理,还能高效地处理项目依赖的问题,确保在开发过程更加流畅和稳定。从自动化安装和更新库,到保持项目依赖的一致性,包管理器在每一个环节都发挥着不可替代的作用。本文将深入探讨 Python 包管理器的核心功能和操作方法,揭示它们如何在现代编程实践中提供支持。我们将介绍几种流行的包管理器,包括它们的特点、使用场景以及如何在您的项目中高效利用这些工具。

m0_59236602的博客 1995

Python 3: 模块和包,包管理工具pip

本文介绍了Python中的模块和包的概念,以及如何使用包管理工具pip来安装和管理第三方包。pip作为Python包管理工具,可以方便地安装、升级和卸载第三方包,使得我们能够轻松地集成和使用其他开发者共享的功能模块。而包是一种将模块组织在一起的方式,通过创建包可以更好地组织和管理大规模的Python项目。本文将介绍Python中的模块和包的概念,以及如何使用包管理工具pip来安装和管理第三方包。在上面的示例中,mypackage是一个包,包含了两个模块文件module1.py和module2.py。

TechSavant的博客 193

python工程项目如何进行包管理

如果有多个依赖包需要安装,可以将它们列在一个文本文件中,每个包占一行,并使用 pip 工具的 requirements 参数进行安装。在 Python 中,可以使用 pip 工具进行包管理,它可以帮助用户安装、更新、卸载包以及显示已安装包的相关信息。以上就是 Python 工程项目如何进行包管理的一些最佳实践。

qq_27487739的博客 1351

Python入门:Python3 pip包管理工具全面学习教程

Python入门:Python3 pip包管理工具全面学习教程,本文是 Python3 pip 使用教程,先介绍 pip 作为 Python 包管理工具的核心功能与预装情况,指出 Python 2.7.9 + 及 3.4 + 版本自带 pip,缺失时可参考相关教程安装;接着详解 pip 基础操作,包括用pip --version验证安装、pip install安装(如 numpy)、pip uninstall卸载第三方库,以及pip list查看已安装包;

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 1万+

Python3中pip包管理工具的安装

1、什么是pip?简单来说pip就是Python的一个包管理工具,可以对第三方的包进行管理操作,例如,安装、卸载、检查更新、查看包信息等等。2、安装pip安装pip之前,首先要保证已经安装了Python开发环境。还是老规矩,仍然以Python3为例,来介绍pip的安装步骤。安装了Python的开发环境后,我们找到其安装目录:…\Python36\Scripts然后在此目录下进入命令行模式,输入以下...

一亩地的专栏 1578

python最常用的包管理工具,Python3.3中的包管理最好使用什么工具?

我正在使用一个非常新的Python脚本来解析它。对于各种Python版本及其包管理器,我已经完全搞不清了。在我使用的是Ubuntu13.10,它似乎同时预装了Python2.7和Python3.3。在两个版本的虚拟机都可以从外部访问:>which python/usr/bin/python>which python2/usr/bin/python2>which python3/u...

weixin_31677427的博客 277

58、Python 3 环境搭建与包管理全解析

本文全面解析了 Python 3 的环境搭建与包管理相关知识,包括使用 venv 和 virtualenv 创建虚拟环境、使用 pip 和 ensurepip 安装包、解决 C/C++ 扩展包安装问题等内容,适合希望掌握 Python 3 开发环境配置的开发者阅读。

sre5engineer的博客 94

全网最详细python3包管理工具教程-pip

pip是python3推荐的包管理工具, Python 3.4+ 以上版本都自带 pip 工具。 1. 未安装pip手动动安装: # 下载安装脚本 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 运行安装脚本 sudo python3 get-pip.py 部分 Linux 发行版可直接用包管理器安装 pip,如 Debian ...

u012285955的博客 838

Python3 模块与包管理Python解释器

前面我们了解了函数,lambda表达式,参数类型与传参,及变量作用域LEGB等内容,今天我们了解下Python模块与包管理。 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py 包是管理模块命名空间的一种形式,包结构类似于电脑上的文件夹结构,一般有顶层包,下面有子包,子包下面又有.py模块。 包和模块存在的意义是为了提高代码复用性,方便别的程序去引入,这在其它编程语言里也都是常见和常用的...

7天零基础小白入门Python教程 283

python 升级所有package_Python系列之包管理工具【pip3

1 pip3工具介绍 pip3python3用来管理包的工具,可以用来安装、升级、卸载第三方库,当然也可以查看包信息,更加可以发布自己所写的包到Pypi(一般会借助另一个工具twine)。2 pip3在线安装python3的包 我们最熟悉的安装包命令是:sudo pip3 install some-package-name 但有几个问题,需要我们弄清楚: (1)这是在线安装,...

weixin_35733495的博客 958

Windows10下配置Python2和Python3共存 并用anaconda实现方便的包管理

适用于想要搭建Python2和Python3共存环境并方便进行包管理的开发者 Anaconda是Python的一个发行版 其中有非常方便的包管理工具conda 官方下载地址 https://www.anaconda.com/download/ 同时下载两个版本的anaconda 以下Python2简称py2 Python3亦然,anaconda简称conda pycharm是非常方便的Pyth...

qq_39498924的博客 310

使用Python 3Python 2同时安装,并使用pip进行包管理

在同时安装Python 3Python 2时,我们可以使用pip3命令来管理Python 3的包,使用pip2命令来管理Python 2的包。在同时安装Python 3Python 2的情况下,我们可能需要使用不同版本的pip来管理各自的包。如果您希望永久更改默认Python版本,请参考您使用的操作系统文档,了解如何进行配置。在虚拟环境中,您可以使用标准的pip命令来安装和管理包,而无需使用pip3或pip2。这将临时更改命令行中的python命令的默认行为,使其与所选择的版本关联。

TechWhiz的博客 615

Python学习--1.8python3包管理

这篇博文主要介绍在windows中进行python包和模块的安装,另外目前大家都在使用python3,所以我会再加点关于python3中下载包时遇到的问题以及解决办法。 目前官方推荐使用pip 1.在windows中自带控制台中下载包 pip更新 python -m pip install --upgrade pip 安装numpy包: pip install num...

二毛的博客 2234

windows包管理器scoop快速安装python2或者python3

介绍 scoop就是windows上的包管理器,类似mac上的homebrew专门针对我这种懒人。 没用过homebrew不要紧,你懒就行,scoop安装教程网上一搜一大把。 至于为什么说他好,大家都说好,存在即合理。我用起来也觉得好。简洁, 然后很懵~~因为用的人真不多, 教练我想安装python 我 scoop search python 了一下: ‘main’ bucket: aws (...

Sinmere的专栏 6912

pip3命令全解析:Python3包管理工具的详细使用指南

pip3Python 3包管理工具,用于安装、升级和卸载 Python 3 的包。以下是pip3

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 1027

Python3虚拟环境与包管理:项目隔离的艺术

虚拟环境不是奢侈品,而是必需品"每个项目一个环境"是Python开发的最佳实践明确声明和锁定依赖版本是团队协作的基础现代化工具(Poetry、Pipenv)提供了更完整的解决方案掌握虚拟环境,让你的Python之旅更加顺畅“给我一个虚拟环境,我能撬动整个Python世界。” —— 阿基米德(如果他是Python开发者)记住:好的项目管理始于良好的环境隔离!掌握虚拟环境,你就掌握了Python项目的基础架构。

weixin_45705239的博客 943
上一篇: Python3标准数据类型
下一篇: Python3函数
Python老王
博客等级 码龄7年 159粉丝 224原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值