认识Linux的版本
查看内核版本命令
cat/proc/version
Linuxversion4.18.0-240.1.1.el8_3.x86_64()(gccversion8.3.120191121(RedHat8.3.1-5)(GCC))#1SMPThuNov1917:20:08UTC2020
uname-a
2.查看Linux版本
lsb_release-a
LSBVersion::core-4.1-amd64:core-4.1-noarch
DistributorID:CentOS
Description:CentOSLinuxrelease8.2.2004(Core)
Release:8.2.2004
Codename:Core
注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。
CentOS安装python3
1、首先安装python3.6可能使用的依赖
yum-yinstallopenssl-develbzip2-develexpat-develgdbm-develreadline-develzlib-devel
2、下载python源码包,地址为,之后通过xftp上传起来,或则直接使用wget命令,wget下载到本地
wget
#tar-zxvfPython-3.6.1.tgz
#cdPython-3.6.1/
3、把python3.6安装到/usr/local目录下
#./configure--prefix=/usr/local/
#make
#makealtinstall
4、更改/usr/bin/python链接(把默认的python链接到python3,之前默认是python2bin文件安装 linuxlinux漏洞扫描,输入python时,才会步入python3界面)
#cd/usr/bin
#mvpythonpython.backup
#ln-s/usr/local/bin/python3.6/usr/bin/python
#ln-s/usr/local/bin/python3.6/usr/bin/python3
#rm-rf/usr/bin/python2
#ln-s/usr/bin/python2.7/usr/bin/python2
5、更改yum脚本的python依赖
#cd/usr/bin
#llyum*
有以下文件:
-rwxr-xr-x1rootroot802Jan217:53yum
-rwxr-xr-x1rootroot9374Jan217:53yum-builddep
-rwxr-xr-x1rootroot8091Jan217:53yum-config-manager
-rwxr-xr-x1rootroot7610Jan217:53yum-debug-dump
-rwxr-xr-x1rootroot7904Jan217:54yum-debug-restore
-rwxr-xr-x1rootroot10906Jan217:54yumdownloader
-rwxr-xr-x1rootroot11032Jan217:54yum-groups-manager
更改以上文件头:#!/usr/bin/python改为#!/usr/bin/python2
可以安装一个tree测试一下
若果出现以下报错:File“/usr/libexec/urlgrabber-ext-down”,line28
vim/usr/libexec/urlgrabber-ext-down
将/usr/bin/python改为/usr/bin/python2即可
这样,yum安装软件的时侯就不会报错了,但是默认安装的就是python3了,输入python时,才会步入python3界面,假如想步入python2,这么就输入python2好了。
源码的安装通常由3个步骤组成:配置(configure)、编译(make)、安装(makeinstall)。
Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure–help输出详尽的选项列表。
其中--prefix选项是配置安装的路径,倘若不配置该选项,安装后可执行文件默认置于/usr/local/bin,库文件默认置于/usr/local/lib,配置文件默认置于/usr/local/etc,其它的资源文件置于/usr/local/share,比较零乱。
假如配置--prefix,如:
./configure--prefix=/usr/local/test
可以把所有资源文件置于/usr/local/test的路径中,不会零乱。
用了—prefix选项的另一个用处是卸载软件或移植软件。当某个安装的软件不再须要时linux vi 命令,只须简单的删掉该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。
其实要卸载程序,也可以在原先的make目录下用一次makeuninstall,但前提是make文件指定过uninstall。
pycharm本地代码上传Linux执行
1、在pycharm的Tools工具中选择Deployment[dɪˈplɔɪmənt](布署)
添加主机服务,可以选择SFTP
SFTP
配置主机信息
Localpath配置为你windows本地的代码路径就可以
Deploymentpathonserver这个配置为你linux上代码的路径
配置完成以后点击ok保存
查看linux的目录和代码:这个时侯通过Tools--Deployment--BrowseRemoteHost就可以看见你远程主机的信息
手动同步:个功能开启以后,自己在本地新建的文件就会手动同步到远程linux服务器上
注意的问题:在Linux中运行的代码,执行最好从根目录下的main.py文件开始,上面的导包最好写绝对路径,开始因为在本地写的不是全路径,在pycharm环境中是可以执行的,并且在linux环境下并不能辨识那些包路径,解决方案:
1.在引入本地模块的文件中加上下边代码,指定项目根目录
importos
importsys
curPath=os.path.abspath(os.path.dirname(__file__))
rootPath=os.path.split(curPath)[0]
sys.path.append(os.path.split(rootPath)[0])
2.最简单的方式:main.py(程序执行入口)放在项目根目录下执行
python自定义包或模块在Linux服务器导出错误的解决办法
在本地机器上跑python代码,自己定义的文件进行导包运行是没有问题,并且放在linux服务器上的时侯才会提示ImportError:Nomodulenamedxxxx(要导出的文件包名)
在python导包的时侯有三条规定:
1.严格区发包和文件夹。包的定义就是包含__init__.py的文件夹。若果没有__init__.py,这么就是普通的文件夹。
2.导出package。在python安装目录的site-package文件夹中新建xxx.pthbin文件安装 linux,内容是须要导出的package所在的文件夹路径。
3.导出模块。就是通常的模块导出写法,注意只要包路径,不要文件夹路径。
解决办法:
1.找到你的python安装路径,我的是在/home/dgw/env/lib/python2.7查看路径方式请查阅博文,往上返回一级找lib路径下的:
2.步入python安装路径的site-packages下。即:/home/dgw/env/lib/python2.7/site-packages
3.创建一个后缀为.pth的文件:touchxxx.pth
4.编辑该pth文件:vimxxx.pth
5.将你要导出的包的绝对路径写入到xxx.pth文件中。(注意:一定要是绝对路径,但是要导出的包须要有__init__.py文件)【在pycharm中右键查看绝对路径】
事例:
导包路径
从项目根开始导包
执行