首页 > 编程语言 >Python 模块(转载)

Python 模块(转载)

时间:2023-06-24 16:46:20浏览次数:48  
标签:Python py evescn python 模块 path 转载 paramiko

Python 常用模块

模块分类

  • 自定义模块
  • 开源模块
  • 内置模块

自定义模块

定义模块

情景一

情景二

情景三

导入模块

Python之所以应用越来越广泛,在一定程度上也依赖于其为程序员提供了大量的模块以供使用,如果想要使用模块,则需要导入。导入模块有一下几种方法:

import module
from module.xx.xx import xx
from module.xx.xx import xx as rename  
from module.xx.xx import *

导入模块其实就是告诉Python解释器去解释那个py文件

  • 导入一个py文件,解释器解释该py文件
  • 导入一个包,解释器解释该包下的 init.py 文件

那么问题来了,导入模块时是根据那个路径作为基准来进行的呢?即:sys.path

import sys
print(sys.path)
  
结果:
['/Users/evescn/Documents/GitHub/python', '/Users/evescn/Documents/GitHub/python', '/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_display', '/Users/evescn/.conda/envs/python/lib/python310.zip', '/Users/evescn/.conda/envs/python/lib/python3.10', '/Users/evescn/.conda/envs/python/lib/python3.10/lib-dynload', '/Users/evescn/.conda/envs/python/lib/python3.10/site-packages', '/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_matplotlib_backend']

如果sys.path路径列表没有你想要的路径,可以通过 sys.path.append('路径') 添加。
通过os模块可以获取各种目录,例如:

import sys
import os

print(os.path.abspath(__file__))
pre_path = os.path.dirname(os.path.abspath(__file__))
sys.path.append(pre_path)
print(sys.path)

结果:
/Users/evescn/Documents/GitHub/python/1.py
['/Users/evescn/Documents/GitHub/python', '/Users/evescn/Documents/GitHub/python', '/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_display', '/Users/evescn/.conda/envs/python/lib/python310.zip', '/Users/evescn/.conda/envs/python/lib/python3.10', '/Users/evescn/.conda/envs/python/lib/python3.10/lib-dynload', '/Users/evescn/.conda/envs/python/lib/python3.10/site-packages', '/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_matplotlib_backend', '/Users/evescn/Documents/GitHub/python']

开源模块

下载安装

下载安装有两种方式

yum
pip
apt-get
... 
下载源码
解压源码
进入目录
编译源码    python setup.py build
安装源码    python setup.py install 

注:在使用源码安装时,需要使用到gcc编译和python开发环境,所以,需要先执行:

yum install gcc
yum install python-devel
或
apt-get python-dev  

安装成功后,模块会自动安装到 sys.path 中的某个目录中,如:

/usr/lib/python2.7/site-packages/ 

导入模块

同自定义模块中导入的方式

模块 paramiko

paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。

1、下载安装
pip3 install paramiko

# pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto
  
# 下载安装 pycrypto
wget https://files.cnblogs.com/files/wupeiqi/pycrypto-2.6.1.tar.gz
tar -xvf pycrypto-2.6.1.tar.gz
cd pycrypto-2.6.1
python setup.py build
python setup.py install
  
# 进入python环境,导入Crypto检查是否安装成功
  
# 下载安装 paramiko
wget https://files.cnblogs.com/files/wupeiqi/paramiko-1.10.1.tar.gz
tar -xvf paramiko-1.10.1.tar.gz
cd paramiko-1.10.1
python setup.py build
python setup.py install
  
# 进入python环境,导入paramiko检查是否安装成功  
2、使用模块
  • 执行命令 - 通过用户名和密码连接服务器
# 执行命令 - 通过用户名和密码连接服务器
import paramiko
 
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.0.100', 22, 'evescn', '123456')
stdin, stdout, stderr = ssh.exec_command('df')
print stdout.read()
ssh.close(); 
  • 执行命令 - 过密钥链接服务器
# 执行命令 - 过密钥链接服务器
 
import paramiko
 
private_key_path = '/home/evescn/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(private_key_path)
 
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('主机名 ', 端口, '用户名', key)
 
stdin, stdout, stderr = ssh.exec_command('df')
print stdout.read()
ssh.close() 
  • 上传或者下载文件 - 通过用户名和密码
# 上传或者下载文件 - 通过用户名和密码
 
import os,sys
import paramiko
 
t = paramiko.Transport(('192.168.0.100',22))
t.connect(username='evescn',password='123456')
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put('/tmp/test.py','/tmp/test.py')
t.close()
 
 
import os,sys
import paramiko
 
t = paramiko.Transport(('192.168.0.100',22))
t.connect(username='evescn',password='123456')
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get('/tmp/test.py','/tmp/test2.py')
t.close()
  • 上传或下载文件 - 通过密钥
# 上传或下载文件 - 通过密钥
 
import paramiko
 
pravie_key_path = '/home/evescn/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(pravie_key_path)
 
t = paramiko.Transport(('192.168.0.100',22))
t.connect(username='evescn',pkey=key)
 
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put('/tmp/test3.py','/tmp/test3.py')
 
t.close()
 
import paramiko
 
pravie_key_path = '/home/evescn/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(pravie_key_path)
 
t = paramiko.Transport(('192.168.0.100',22))
t.connect(username='evescn',pkey=key)
 
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get('/tmp/test3.py','/tmp/test4.py')
 
t.close()

内置模块

python 自带的模块功能,例如:os,sys,time,json,pickle 等模块

转载

https://www.cnblogs.com/wupeiqi/articles/4963027.html

标签:Python,py,evescn,python,模块,path,转载,paramiko
From: https://www.cnblogs.com/evescn/p/17501285.html

相关文章

  • python: Treeview Control binding data using tkinter and ttkbootstrap GUI
     """StudentUI.py读文件类date2023-06-24edit:GeovinDu,geovindu,涂聚文ide:PyCharm2023.1python11"""importdatetimeimportsysimportosfromtkinterimportttkfromtkinterimport*fromtkinter.ttkimport*fromttk......
  • 若依微服务swagger如何不显示某个模块的接口文档?
    在若依微服务项目中,如果不想暴露某个模块的swagger的接口文档,需要怎么做?本文以ruoyi-gen模块进行举例说明。  默认情况下,可以看到这里包含了ruoyi-gen模块,我们要做的是,要将ruoyi-gen进行隐藏。最终的预期结果如下图所示,可以看见,下图中,是不包含ruoyi-gen这个模块的。那我们具体应......
  • 用python打开文件夹
    '''用python打开文件夹''''''https://blog.csdn.net/yqyangcyq/article/details/105677844'''os.system("explorer.exe%s"%str_dizh)#打开(可重复打开)目标文件夹os.startfile(str_dizh)#打开(并且屏幕上只存在一个/不会重复打开......
  • "ntoskrnl"代表"NT Operating System Kernel",它是Windows操作系统的主要核心模块之一,
    Windows内核是微软Windows操作系统的核心组件,它负责管理操作系统的核心功能和提供关键的系统服务。Windows内核是运行在计算机硬件上的软件,它与硬件交互并管理资源分配、进程管理、设备驱动程序和系统安全等任务。Windows内核采用了一种称为“混合内核”的设计,结合了传统的单内核......
  • 堡垒机模块-(jumperserver部署完成)
    堡垒机模块原创 希里安 希里安 2023-05-3018:00 发表于四川收录于合集#堡垒机1个#webshell1个#开源4个关注“希里安”,get更多有用干货 前两天在项目里加了个webshell,还没开发完成,有读者朋友说费那劲干嘛,直接引入类似jumpserver开源堡垒机就完事了。说的不......
  • Python 3.11 无法使用opencv的解决方法
    尝试了各种办法,默认安装方法pipinstallopencv-python安装后,importcv2提示缺少dll文件。下载了opencv4.7,添加路径到环境变量PYTHONPATH,但是里面没有提供给python3.11的config.py只有给3.10的,还是不成功。所以,只好卸载了Python3.11,安装了Python3.10,直接用默认安装方法pipin......
  • python: object 专有方法
     """StudentScoreInfo.py学生成绩类date2023-06-16edit:GeovinDu,geovindu,涂聚文ide:PyCharm2023.1python11"""importdatetimeimportsysimportosclassStudentScore(object):"""学生成绩类"&q......
  • Python 求最大公约数
    题目要求求最大公约最简单快速的方式还是欧几里得算法原理:已知m、n两个不全为0的非负整数gcd(m,n)1:如果n=0,返回m作为结果,否则进入22:m对n取余,余数赋值给r3:将n赋值给m,r赋值给n,返回1参考实现defgcd(m,n):'''求最大公约数:paramm::paramn::ret......
  • python-docx处理Word
     用到的库?123456fromdocximportDocument(文档读写)fromdocx.sharedimportPt,Cm,Inches(字体大小,不一定全用到)fromdocx.oxml.nsimportqn(设置字体格式,分栏等用到)fromdocx.sharedimportRGBColor(设置字体颜色)fromdocx.enum.textimportWD_ALIG......
  • spring框架里的spring context模块介绍,它和spring core有什么关联?
    springcontext模块介绍Spring框架是一个开源的Java开发框架,它提供了一系列的功能和工具,用于简化Java应用程序的开发。SpringContext模块是Spring框架的核心部分之一,它主要负责管理和协调应用程序中的对象。SpringContext模块的主要功能包括:IoC容器(Inversi......