导航:首页 > 编程语言 > 嵌入python包

嵌入python包

发布时间:2022-10-10 10:54:56

python如何在线加包

Python2.7:

sudopipinstall<包的名字>

Python 3+:

sudopip3install<包的名字>

比如在线增加多个包:



㈡ 盘点Python常用的模块和包

模块

1.定义

计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里。在python里,一个.py文件就是一个模块。

2.优点:

提高代码的可维护性。

提高代码的复用,当模块完成时就可以在其他代码中调用。

引用其他模块,包含python内置模块和其他第三方模块。

避免函数名和变量名等名称冲突。

python内建模块:

1.sys模块

2.random模块

3.os模块:

os.path:讲解

https://www.cnblogs.com/yufeihlf/p/6179547.html

数据可视化

1.matplotlib :

是Python可视化程序库的泰斗,它的设计和在1980年代被设计的商业化程序语言MATLAB非常接近。比如pandas和Seaborn就是matplotlib的外包,它们让你能用更少的代码去调用 matplotlib的方法。

访问:

https://matplotlib.org/

颜色:

https://www.cnblogs.com/darkknightzh/p/6117528.html

教程:

https://wizardforcel.gitbooks.io/matplotlib-user-guide/3.1.html

2.Seaborn:

它是构建在matplotlib的基础上的,用简洁的代码来制作好看的图表。Seaborn跟matplotlib最大的区别就是它的默认绘图风格和色彩搭配都具有现代美感。

访问:

http://seaborn.pydata.org/index.html

3.ggplot:

gplot 跟 matplotlib 的不同之处是它允许你叠加不同的图层来完成一幅图

访问:

http://ggplot.yhathq.com/

4.Mayavi:

Mayavi2完全用Python编写,因此它不但是一个方便实用的可视化软件,而且可以方便地用Python编写扩展,嵌入到用户编写的Python程序中,或者直接使用其面向脚本的API:mlab快速绘制三维图

访问:http://code.enthought.com/pages/mayavi-project.html

讲解:https://blog.csdn.net/ouening/article/details/76595427https://www.jianshu.com/p/81e6f4f1cdd8

5.TVTK:

TVTK库对标准的VTK库进行包装,提供了Python风格的API、支持Trait属性和numpy的多维数组。

VTK (http://www.vtk.org/) 是一套三维的数据可视化工具,它由C++编写,包涵了近千个类帮助我们处理和显示数据

讲解:https://docs.huihoo.com/scipy/scipy-zh-cn/tvtk_intro.html

机器学习

1.Scikit-learn

是一个简单且高效的数据挖掘和数据分析工具,易上手,可以在多个上下文中重复使用。它基于NumPy, SciPy 和 matplotlib,开源,可商用(基于 BSD 许可)。

访问:

讲解:https://blog.csdn.net/finafily0526/article/details/79318401

2.Tensorflow

最初由谷歌机器智能科研组织中的谷歌大脑团队(Google Brain Team)的研究人员和工程师开发。该系统设计的初衷是为了便于机器学习研究,能够更快更好地将科研原型转化为生产项目。

相关推荐:《Python视频教程》

Web框架

1.Tornado

访问:http://www.tornadoweb.org/en/stable/

2.Flask

访问:http://flask.pocoo.org/

3.Web.py

访问:http://webpy.org/

4.django

https://www.djangoproject.com/

5.cherrypy

http://cherrypy.org/

6.jinjs

http://docs.jinkan.org/docs/jinja2/

GUI 图形界面

1.Tkinter

https://wiki.python.org/moin/TkInter/

2.wxPython

https://www.wxpython.org/

3.PyGTK

http://www.pygtk.org/

4.PyQt

https://sourceforge.net/projects/pyqt/

5.PySide

http://wiki.qt.io/Category:LanguageBindings::PySide

科学计算

教程

https://docs.huihoo.com/scipy/scipy-zh-cn/index.html#

1.numpy

访问

http://www.numpy.org/

讲解

https://blog.csdn.net/lm_is_dc/article/details/81098805

2.sympy

sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题

访问

https://docs.sympy.org/0.7.1/guide.html#guide

讲解

https://www.jianshu.com/p/339c91ae9f41

解方程

https://www.cnblogs.com/zyg123/p/10549354.html

3.SciPy

官网

https://www.scipy.org/

讲解

https://blog.csdn.net/wsp_1138886114/article/details/80444621

4.pandas

官网

http://pandas.pydata.org/

讲解

https://www.cnblogs.com/linux-wangkun/p/5903945.html

5.blaze

官网

http://blaze.readthedocs.io/en/latest/index.html

密码学

1.cryptography

https://pypi.python.org/pypi/cryptography/

2.hashids

http://www.oschina.net/p/hashids

3.Paramiko

http://www.paramiko.org/

4.Passlib

https://pythonhosted.org/passlib/

5.PyCrypto

https://pypi.python.org/pypi/pycrypto

6.PyNacl

http://pynacl.readthedocs.io/en/latest/

爬虫相关

requests

http://www.python-requests.org/

scrapy

https://scrapy.org/

pyspider

https://github.com/binux/pyspider

portia

https://github.com/scrapinghub/portia

html2text

https://github.com/Alir3z4/html2text

BeautifulSoup

https://www.crummy.com/software/BeautifulSoup/

lxml

http://lxml.de/

selenium

http://docs.seleniumhq.org/

mechanize

https://pypi.python.org/pypi/mechanize

PyQuery

https://pypi.python.org/pypi/pyquery/

creepy

https://pypi.python.org/pypi/creepy

gevent

一个高并发的网络性能库

http://www.gevent.org/

图像处理

bigmoyan

http://scikit-image.org/

Python Imaging Library(PIL)

http://www.pythonware.com/procts/pil/

pillow:

http://pillow.readthedocs.io/en/latest/

自然语言处理

1.nltk:

http://www.nltk.org/

教程

https://blog.csdn.net/wizardforcel/article/details/79274443

2.snownlp

https://github.com/isnowfy/snownlp

3.Pattern

https://github.com/clips/pattern

4.TextBlob

http://textblob.readthedocs.io/en/dev/

5.Polyglot

https://pypi.python.org/pypi/polyglot

6.jieba:

https://github.com/fxsjy/jieba

数据库驱动

mysql-python

https://sourceforge.net/projects/mysql-python/

PyMySQL

https://github.com/PyMySQL/PyMySQL

PyMongo

https://docs.mongodb.com/ecosystem/drivers/python/

pymongo

MongoDB库

访问:https://pypi.python.org/pypi/pymongo/

redis

Redis库

访问:https://pypi.python.org/pypi/redis/

cxOracle

Oracle库

访问:https://pypi.python.org/pypi/cx_Oracle

SQLAlchemy

SQL工具包及对象关系映射(ORM)工具

访问:http://www.sqlalchemy.org/

peewee,

SQL工具包及对象关系映射(ORM)工具

访问:https://pypi.python.org/pypi/peewee

torndb

Tornado原装DB

访问:https://github.com/bdarnell/torndb

Web

pycurl

URL处理工具

smtplib模块

发送电子邮件

其他库暂未分类

1.PyInstaller:

是一个十分有用的第三方库,它能够在Windows、Linux、 Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个 独立文件方便传递和管理。

2.Ipython

一种交互式计算和开发环境

讲解

https://www.cnblogs.com/zzhzhao/p/5295476.html

命令

ls、cd 、run、edit、clear、exist

㈢ Python导入模块或包需要注意哪些点

Python是一种面向对象的编程语言,里面包含有丰富强大的库,想要学习Python开发,首先需要学习如何导入模块或包。下面就跟大家一起讨论下Python导入模块的几种方法:
常规导入
最常用的导入方式,大概是这样的:
import sys
只需要使用 import ,然后指定希望导入的模块或包即可。用这种方法导入的好处是可以一次性导入多个包或模块:
import os, sys, time
虽然这节省了空间,但是却违背了Python风格指南。 Python风格指南建议将每个导入语句单独成行 。
有时在导入模块时,你想要重命名这个模块。这个功能很容易实现:
import sys as system
print(system.platform)
上面的代码将我们导入的 sys 模块重命名为 system 。我们可以按照和以前一样的方式调用模块的方法,但是可以用一个新的模块名。也有某些子模块必须要使用点标记法才能导入。
import urllib.error
这个情况不常见,但是对此有所了解总是没有坏处的。
使用from语句导入
有时我们只想要导入一个模块或库中的某个部分。那么Python是如何实现这点:
from functools import lru_cache
上面这行代码可以让你直接调用 lru_cache 。如果按常规方式导入 functools ,那么就必须像这样调用 lru_cache :
functools.lru_cache(*args)
根据实际的使用场景,上面的做法可能是更好的。在复杂的代码库中,能够看出某个函数是从哪里导入的这点很有用的。不过,如果你的代码维护的很好,模块化程度高,那么只从某个模块中导入一部分内容也是非常方便和简洁的。
当然,你还可以使用from方法导入模块的全部内容,就像这样:
from os import *
这种做法在少数情况下是挺方便的,但是这样也会打乱你的命名空间。问题在于,你可能定义了一个与导入模块中名称相同的变量或函数,这时如果你试图使用
os 模块中的同名变量或函数,实际使用的将是你自己定义的内容。因此,你最后可能会碰到一个相当让人困惑的逻辑错误。
标准库中我唯一推荐全盘导入的模块只有Tkinter 。
如果你正好要写自己的模块或包,有人会建议你在 __init__.py 文件中导入所有内容,让模块或者包使用起来更方便。我个人更喜欢显示地导入,而非隐式地导入。
你也可以采取折中方案,从一个包中导入多个项:
from os import path, walk, unlinkfrom os import uname, remove
在上述代码中,我们从 os 模块中导入了5个函数。你可能注意到了,我们是通过多次从同一个模块中导入实现的。当然,如果你愿意的话,你也可以使用圆括号一次性导入多个项:
from os import (path, walk, unlink, uname,
remove, rename)
这是一个有用的技巧,不过你也可以换一种方式:
from os import path, walk, unlink, uname, \
remove, rename
上面的反斜杠是Python中的续行符,告诉解释器这行代码延续至下一行。
相对导入
PEP 328 介绍了引入相对导入的原因,以及选择了哪种语法。具体来说,是使用句点来决定如何相对导入其他包或模块。这么做的原因是为了避免偶然情况下导入标准库中的模块产生冲突。这里我们以PEP 328中给出的文件夹结构为例,看看相对导入是如何工作的:
my_package/
__init__.py
subpackage1/
__init__.py
mole_x.py
mole_y.py
subpackage2/
__init__.py
mole_z.py
mole_a.py
在本地磁盘上找个地方创建上述文件和文件夹。在顶层的 __init__.py 文件中,输入以下代码:
from . import subpackage1from . import subpackage2
接下来进入 subpackage1 文件夹,编辑其中的 __init__.py 文件,输入以下代码:
from . import mole_xfrom . import mole_y
现在编辑 mole_x.py 文件,输入以下代码:
from .mole_y import spam as ham
def main():
ham()
最后编辑 mole_y.py 文件,输入以下代码:
def spam():
print('spam ' * 3)
打开终端, cd 至 my_package 包所在的文件夹,但不要进入 my_package 。在这个文件夹下运行Python解释器。我使用的是IPython,因为它的自动补全功能非常方便:
In [1]: import my_package
In [2]: my_package.subpackage1.mole_xOut[2]: <mole
'my_package.subpackage1.mole_x' from
'my_package/subpackage1/mole_x.py'>
In [3]: my_package.subpackage1.mole_x.main()spam spam spam
相对导入适用于你最终要放入包中的代码。如果你编写了很多相关性强的代码,那么应该采用这种导入方式。
你会发现PyPI上有很多流行的包也是采用了相对导入 。还要注意一点,如果你想要跨越多个文件层级进行导入,只需要使用多个句点即可。不过, PEP
328建议相对导入的层级不要超过两层 。
还要注意一点,如果你往 mole_x.py 文件中添加了 if __name__ == ‘__main__’ ,然后试图运行这个文件,你会碰到一个很难理解的错误。编辑一下文件,试试看吧!
from . mole_y import spam as ham
def main():
ham()
if __name__ == '__main__':
# This won't work!
main()
现在从终端进入 subpackage1 文件夹,执行以下命令:
python mole_x.py
如果你使用的是Python 2,你应该会看到下面的错误信息:
Traceback (most recent call last):
File "mole_x.py", line 1, in <mole>
from . mole_y import spam as hamValueError: Attempted relative import in non-package
如果你使用的是Python 3,错误信息大概是这样的:
Traceback (most recent call last):
File "mole_x.py", line 1, in <mole>
from . mole_y import spam as hamSystemError: Parent mole '' not loaded, cannot perform relative import
这指的是, mole_x.py 是某个包中的一个模块,而你试图以脚本模式执行,但是 这种模式不支持相对导入 。
如果你想在自己的代码中使用这个模块,那么你必须将其添加至Python的导入检索路径(import search path)。最简单的做法如下:
import syssys.path.append('/path/to/folder/containing/my_package')import my_package
注意,你需要添加的是 my_package 的上一层文件夹路径,而不是 my_package 本身。原因是 my_package 就是我们想要使用的包,所以如果你添加它的路径,那么将无法使用这个包。
我们接下来谈谈可选导入。
可选导入(Optional imports)
如果你希望优先使用某个模块或包,但是同时也想在没有这个模块或包的情况下有备选,你就可以使用可选导入这种方式。这样做可以导入支持某个软件的多种版本或者实现性能提升。以 github2包 中的代码为例:
try:
# For Python 3
from http.client import responsesexcept ImportError: # For Python 2.5-2.7
try:
from httplib import responses # NOQA
except ImportError: # For Python 2.4
from BaseHTTPServer import BaseHTTPRequestHandler as _BHRH
responses = dict([(k, v[0]) for k, v in _BHRH.responses.items()])
lxml 包也有使用可选导入方式:
try:
from urlparse import urljoin
from urllib2 import urlopenexcept ImportError:
# Python 3
from urllib.parse import urljoin
from urllib.request import urlopen
正如以上示例所示, 可选导入的使用很常见,是一个值得掌握的技巧 。
局部导入
当你在局部作用域中导入模块时,你执行的就是局部导入。如果你在Python脚本文件的顶部导入一个模块,那么你就是在将该模块导入至全局作用域,这意味着之后的任何函数或方法都可能访问该模块。例如:
import sys # global scope
def square_root(a):
# This import is into the square_root functions local scope
import math
return math.sqrt(a)
def my_pow(base_num, power):
return math.pow(base_num, power)
if __name__ == '__main__':
print(square_root(49))
print(my_pow(2, 3))
这里,我们将 sys 模块导入至全局作用域,但我们并没有使用这个模块。然后,在 square_root 函数中,我们将 math
模块导入至该函数的局部作用域,这意味着 math 模块只能在 square_root 函数内部使用。如果我们试图在 my_pow 函数中使用
math ,会引发 NameError 。试着执行这个脚本,看看会发生什么。
使用局部作用域的好处之一,是你使用的模块可能需要很长时间才能导入,如果是这样的话,将其放在某个不经常调用的函数中或许更加合理,而不是直接在全局作
用域中导入。老实说,我几乎从没有使用过局部导入,主要是因为如果模块内部到处都有导入语句,会很难分辨出这样做的原因和用途。
根据约定,所有的导入语句都应该位于模块的顶部 。
导入注意事项
在导入模块方面,有几个程序员常犯的错误。这里我们介绍两个。
循环导入(circular imports)
覆盖导入(Shadowed imports,暂时翻译为覆盖导入)
先来看看循环导入。
循环导入
如果你创建两个模块,二者相互导入对方,那么就会出现循环导入。例如:
# a.pyimport b
def a_test():
print("in a_test")
b.b_test()
a_test()
然后在同个文件夹中创建另一个模块,将其命名为 b.py 。
import a
def b_test():
print('In test_b"')
a.a_test()
b_test()
如果你运行任意一个模块,都会引发 AttributeError 。这是因为这两个模块都在试图导入对方。简单来说,模块 a 想要导入模块 b
,但是因为模块 b 也在试图导入模块 a (这时正在执行),模块 a 将无法完成模块 b
的导入。我看过一些解决这个问题的破解方法(hack),但是 一般来说,你应该做的是重构代码,避免发生这种情况 。
覆盖导入
当你创建的模块与标准库中的模块同名时,如果你导入这个模块,就会出现覆盖导入。举个例子,创建一个名叫 math.py 的文件,在其中写入如下代码:
import math
def square_root(number):
return math.sqrt(number)
square_root(72)
现在打开终端,试着运行这个文件,你会得到以下回溯信息(traceback):
Traceback (most recent call last):
File "math.py", line 1, in <mole>
import math
File "/Users/michael/Desktop/math.py", line 6, in <mole>
square_root(72)
File "/Users/michael/Desktop/math.py", line 4, in square_root
return math.sqrt(number)AttributeError: mole 'math' has no attribute 'sqrt'
这到底是怎么回事?其实,你运行这个文件的时候,Python解释器首先在当前运行脚本所处的的文件夹中查找名叫 math
的模块。在这个例子中,解释器找到了我们正在执行的模块,试图导入它。但是我们的模块中并没有叫 sqrt 的函数或属性,所以就抛出了
AttributeError 。

㈣ 怎么在Python嵌入版中使用Tkinter

方法/步骤

㈤ 如何安装第三方python 包

第一种pip方式,现在python都带pip,直接pip install 包名就行了

第二种基本安装方法

1 下载第三方包,解压

2 在命令提示符里输入cmd,然后用cd进入到第三方包的路径下

3 输入Python setup.py build

4 输入python setup.py install
看到包内的文件在安装即可

㈥ 怎样手动安装python的包

安装Python包,可以使用pip包管理工具,这样可以自动安装。手动安装的办法如下
对于手动安装python包,比如chardet,需要下载解压后放到 Lib->site-packages下面(python安装目录下好像也可以,没放过。site-
packages是放第三方包的),然后再chardet的目录下有个setup.py,需要在这个目录下打开命令行,运行python setup.py install 完
编译。这样就完成安装了。
推荐学习《Python教程》

㈦ python: 为什么不能导入嵌套的包

importmyscrapy.basespiders.jingdong

这样不行吗

环境变量是加的spider-common吗

㈧ 如何把一个python包导入到python库中

Python 运行环境在查找模块时是对 sys.path 列表进行遍历,如果我们想在运行环境中添加自定义的模块,主要有以下三种方法:
1. 在sys.path列表中添加新的路径(只能对执行了 sys.path.append 命令的当前 Python 运行环境起作用,对其他运行环境不起作用,也即“一次性”的)。
>>> import sys
>>> sys.path
>>> sys.path.append('/home/xxx/yyy') #目录/home/xxx/yyy包含你所需要的包或模块
设置 PYTHONPATH 环境变量(永久性添加):
2. 将包或模块复制到 sys.path 列表中的目录(通过 sys.path 查看)里(如 /home/test/lib/python2.7/site-packages/ 目录)。
3. 最简单的办法是用 .pth 文件来实现。Python 在遍历已有的库文件目录(sys.path中指定)过程中,如果见到一个 .pth 文件,就会将该文件中所记录的路径加入到 sys.path 设置中,这样 .pth 文件说指明的库也就可以被 Python 运行环境找到。
$cd /home/test/lib/python2.7/site-packages/
$touch test.pth
$vim test.pth
$添加一行包或模块所在的目录(如:/home/test/somePackage/)
则test.pth文件内容为:
/home/test/somePackage/

阅读全文

与嵌入python包相关的资料

热点内容
怎么在电脑上编译成功 浏览:214
单片机可调时钟设计方案 浏览:192
qq文件夹密码忘记怎么找回 浏览:683
php扩展插件 浏览:607
解压视频厕所抽纸 浏览:952
app减脂怎么用 浏览:452
pythonwebpdf 浏览:639
单片机的功能模块 浏览:771
安卓手机如何录制视频长时间 浏览:285
安全问题app哪个好 浏览:445
压缩水会变冰吗 浏览:526
小说配音app哪个靠谱 浏览:820
编译iso 浏览:944
照片生成pdf格式 浏览:194
病历转pdf 浏览:835
云服务器配硬件 浏览:978
服务器10k什么意思 浏览:21
pdfeditor汉化 浏览:884
新科学pdf 浏览:748
现在还有c语言编译吗 浏览:676