Linux】在linux和mac os系统中默认安装python对还是不对?

2020-03-23 18:58发布

5条回答
selanger
2楼 · 2020-06-23 08:58

Linux和Mac os中都默认安装了2.7版本的python,但是现在的python主流版本为3.x。如果需要装python3建议两种方式解决。

1、安装python2或者python3共存,就是不需要卸载原有的python2,然后安装python3,这种方法下载源码安装,然后配置好软连接即可。

2、使用虚拟环境anaconda3,这个虚拟环境不需要依赖python环境即可安装,并且能够创建不同版本的环境,这种方式下载anaconda安装包,一件安装即可,安装完成之后,使用命令 conda create -n 虚拟环境的名字 python=3.x 即可创建一个3.x版本的环境,激活使用即可。

it小哥哥
3楼 · 2020-09-17 10:02


操作系统:LinuxCentOS5/MaxOSX10.6snowleopard

安装版本:Python2.6.4

 

MacOSX10.2及其后续版本已经预装了Python,10.6snowleopard下的python版本已经内置了2.3,2.4,2.5

CentOS5也有内置Python

系统内置的不一定能满足需要,有时需要新版本或者不同于系统版本的Python,下面记录一下安装过程。

 

现在python的最新版本是3.1.1,但因为python3并没有向下兼容python2,目前大部分资源库还都不支持,所以暂不考虑。

python2的最新发行版本是2.6.4,本文就是介绍这个版本的安装,不过安装过程本身都是通用的,其他版本的python也可参照本文进行安装。

注:mac下有自动的dmg安装包,但不建议使用。一般情况下,建议大家安装源码版。

下载:请到官方网站http://www.python.org/或者直接点击链接http://www.python.org/ftp/python/2.6.4/Python-2.6.4.tar.bz2

解压:tarjxvfPython-*

进入文件目录,运行以下命令:1)./configure2)make3)sudomakeinstall命令1为安装程序自动配置环境,命令2为编译源程序,命令3为安装

安装完成后python基本就安装完成,可运行文件在/usr/local/bin中,库文件在/usr/lib/python2.6中。注(mac):这个是隐藏目录,Finder中是直接看不到的,要在Finder中点击前往-前往文件夹,然后输入/usr才能进入。

更改系统默认运行的python版本,运行以下命令:sudoln-s/usr/local/bin/python/usr/bin/pythonsudoln-s/usr/local/bin/pydoc/usr/bin/pydocsudoln-s/usr/local/bin/pythonw/usr/bin/pythonw

至此安装完毕,在终端中输入命令python看一下版本是不是已经变成python2.6.4了?

如有问题请留言,我一定尽力解答,GoodLuck! 

 

可能碰到的问题:

zlib未安装,解决办法 

wgethttp://zlib.net/zlib-1.2.4.tar.gz

1)./configure

2)make

 3)makeinstall 

************************************************

************************************************

 



1、在linux下使用源码包安装apache2.2.4python2.5.1mod_python3.3.1djangosvntrunkversion

一、安装apache2.2.4

1、下载

请到

http://httpd.apache.org

下载最新的httpd服务器,只要版本跟2.2.4相差不大,就可以参考本文进行配置安装。

2、解压

#tarxvfzhttpd-2.2.4.tar.gz

上面命令会在当前目录得到httpd-2.2.4目录,这个目录就是apache2.2.4的源码目录。

对于解压命令的详细介绍,请看我的这篇文章:

Linux文件压缩解压详解

3、Configure

编译安装源代码的过程一般都是configure/make/makeinstall三步曲,apache也遵循这个规则。

进入httpd-2.2.4目录:

#cdhttpd-2.2.4

执行如下命令查看configure的帮助信息

#./configure--help

安装的全部细节都是由configure以及它的参数进行控制的。

如果你刚开始尝试从源代码包安装软件,请尽快习惯configure之后冗长复杂的参数!

下面是我推荐的configure参数,它会将apache安装到/opt/apache下面,并且带所有常用的apacheModules:

#./configure--prefix=/opt/apache--enable-track-vars--enable-cgi--with-config-file-path=/opt/apache/conf--enable-modules=all--enable-mods-shared=all--enable-file-cache--enable-disk-cache--enable-cache--enable-mem-cache--enable-dumpio--enable-logio--enable-mime-magic--enable-headers--enable-usertrack--enable-version--enable-ssl--enable-http--enable-rewrite--enable-proxy--enable-proxy-connect--enable-proxy-http--enable-proxy-ftp--enable-proxy-ajp--enable-proxy-balancer--enable-so

当然,安装所有扩展模块意味着将apache功能扩展到极限,但如果你不会配置这些模块,或者置之不理,他们很可能会给你带来不必要的麻烦或者安全隐患。

4、make/makeinstall

真正漫长的步骤开始了(我指时间上),下面命令开始编译过程:

#make

等待编译完成之后,执行:

#makeinstall

会将apache安装到第三步配置的/opt/apache目录中。

5、配置apache

配置apache的httpd.conf文件是一项大工程,互联网上有很多高人的文章指导你进行正确必要的配置,我在这里就不赘述了。

如何将apache加入到系统服务中,请看我的这篇文章:

将apache加入linux系统服务

6、已知问题及解决方法

如果你遇到类似下面的.so权限错误:

httpd:Syntaxerroronline63of/opt/apache/conf/httpd.conf:Cannotload/opt/apache/modules/mod_python.sointoserver:/opt/apache/modules/mod_python.so:cannotrestoresegmentprotafterreloc:Permissiondenied

说明是你的.so文件权限不够,很可能是你的SELinux(如果你有装)的权限检查没有通过导致的。

使用下面命令可以将.so文件定义为共享类库文件,就可以通过权限检查:

#chcon-ttexrel_shlib_t/opt/apache/modules/*.so

注意:千万别将*.so权限改为777,具体原因请看我的这篇文章:

解决SELinux带来的PHP权限问题

上面安装apache的过程讲述很详细,之后python/mod_python将只给出必要解释和推荐的configure命令。

 

二、安装python2.5.1

1、编译安装

到www.python.org下载最新的python源码包,解压得到目录,进入该目录,执行:

#./configure--prefix=/opt/python/2.5.1

#make

#makeinstall

使用下面命令将python添加到/usr/bin中,并且区别其他版本的python执行文件,使它们可以共存

#ln/opt/python/2.5.1/bin/python/usr/bin/python2.5.1

以后可以将新版本的python编译到/opt/python/[版本]中,使用上面命令生成对应版本的链接。

2、设置运行命令

这里需要注意一下执行程序,现在的python2.5.1的执行程序是python2.5.1,

如果想进入python2.5.1的shell,需要键入python2.5.1,

如果想系统使用python2.5.1执行.py脚本,需要在脚本第一行将python运行命令修改为:

#!/usr/bin/python2.5.1

如果你觉得以后默认使用python2.5.1就好,那么可以:

#rm-f/usr/bin/python

#ln/opt/python/2.5.1/bin/python/usr/bin/python

这样执行python进入的就是2.5.1了。

在命令行下输入python,出现python解释器即表示已经正确安装。在suse10或rhel5(es5)下系统默认已经装了python但版本是2.4.x;本次安装后在shell中输入#python会发现显示结果:#pythonPython2.4.3(#1,Dec112006,11:38:52)[GCC4.1.120061130(RedHat4.1.1-43)]onlinux2Type"help","copyright","credits"or"license"formoreinformation.>>>版本还是2.4.x的解决办法:     #cd/usr/bin     #ll|greppython//查看该目录下python     #rm-rfpython     #ln-sPREFIX/Python-2.5.2/python./python  //PREFIX为你解压python的目录        #python                    #python              Python2.5.2(#1,Dec112006,11:38:52)              [GCC4.1.120061130(RedHat4.1.1-43)]onlinux2              Type"help","copyright","credits"or"license"formoreinformation.              >>>OK!问题解决!         

 

 

三、安装mod_python

1、到www.modpython.org下载源码包,解压得到目录,进入该目录,执行:

#./configure--with-apxs=/opt/apache/bin/apxs--with-python=/usr/bin/python2.5.1

#make

#makeinstall

完毕之后,mod_python会在/opt/apache/modules中添加mod_python.so库文件,并且在/opt/python/2.5.1/lib/python2.5/site-packages中添加mod_python包。

如果编译程序没有检测到apache和python,会报错退出。

2、配置httpd.conf

找到/opt/apache/conf/httpd.conf配置文件,在适当位置添加:

LoadModulepython_modulemodules/mod_python.so

记住,modules/mod_python.so必须有可以通过SELinux检查的权限,参看本文第一章第6节的内容!

四、安装django

这次我们采用django的SVNHeadVersion(最新开发版本)。

采用这个版本的好处是,官方的任何更新,你只需要运行svn进行更新就会得到最新的版本,并且更新即可用。

1、如果系统没有Subversion,找到装上(http://subversion.tigris.org/)。     安装时如果系统中有低版本的,先删除,再安装

2、得到最新版本的workingcopy

这里有两个版本可以选择,择其一运行命令:

一是django全部源码(文件相当多):

#svncohttp://code.djangoproject.com/svn/django/source/svn/django

二是django的当前最新版本trunk:

#svncohttp://code.djangoproject.com/svn/django/trunk/source/svn/django_trunk

3、将django源码链接到python的site-packages公共代码目录中

全部源码版本:

#ln-s/source/svn/django/trunk/django/opt/python/2.5.1/lib/python2.5/site-packages/django

最新版本trunk:

#ln-s/source/svn/django/django/opt/python/2.5.1/lib/python2.5/site-packages/django

注意一定要带上参数-s,否则后面调用会出错!

上面的命令只是创建了当前源码目录的一个链接到site-packages中,这样每次运行下面命令更新django之后,python调用的都是更新之后的最新版本:

#cd/source/svn/django

#svncleanup(如果提示locked,执行这一句)

#svnupdate

4、拷贝django管理文件

运行下面命令将管理文件拷贝到/usr/bin中,以便随处可以执行该文件:

#cp/source/svn/django/trunk/django/bin/django-admin.py/usr/bin/

或者

#cp/source/svn/django/django/bin/django-admin.py/usr/bin/

如果运行django-admin.py得到如下错误信息:

ImportError:Nomodulenameddjango.core

说明django-admin.py运行在了另一个版本的python中!

记住,我们的django是安装在python2.5.1中的(/opt/python/2.5.1),如果你的python2.5.1执行命令为python2.5.1(参考第二章第2节),需要将/usr/bin/django-admin.py第一行修改为:

#!/usr/bin/python2.5.1

或者是已经安装django的python的执行命令。

4、参考文章

官方的安装指南,请参考:

http://www.djangoproject.com/documentation/install/

如何使用django,请参考官方指南这一部分:

http://www.djangoproject.com/documentation/modpython/

推荐使用.htaccess文件,而不是直接修改httpd.conf配置文件,因为.htaccess更加灵活。

记得将httpd.conf配置文件中AllowOverride配置项作相应配置(比如AllowOverride=All)

 

五、总结

如果完全按照上面的安装步骤进行安装,我们会得到如下内容:

apache2.2.4目录:

/opt/apache

python2.5.1目录:

/opt/python/2.5.1

mod_python.so位置:

/opt/apache/modules/mod_python.so

django源码包目录:

/source/svn/django

修改过的文件:

/opt/apache/conf/httpd.conf

如果想更新django:

#cd/source/svn/django

#svnupdate

自此,全部安装完毕,你已经可以使用django创建你的PythonWebApplication了!



哈哈哈哈哈哈嗝
4楼 · 2020-10-16 15:58

Linux和Mac os中都默认安装了2.7版本的python,但是现在的python主流版本为3.x。如果需要装python3建议两种方式解决。

1、安装python2或者python3共存,就是不需要卸载原有的python2,然后安装python3,这种方法下载源码安装,然后配置好软连接即可。

2、使用虚拟环境anaconda3,这个虚拟环境不需要依赖python环境即可安装,并且能够创建不同版本的环境,这种方式下载anaconda安装包,一件安装即可,安装完成之后,使用命令 conda create -n 虚拟环境的名字 python=3.x 即可创建一个3.x版本的环境,激活使用即可。


灰机带翅膀
5楼 · 2021-08-26 14:30

没什么对不对的 

image.png

不吃鱼的猫
6楼 · 2022-05-24 17:43

不同系统版本号不一样,python主流是3.x

相关问题推荐

  • 回答 7

    使用命令:chmod 744 myflile就可以实现以上的操作。

  • 回答 4

    关于CLOSE_WAIT和TIME_WAIT状态,服务器端都有可能出现,TIME_WAIT出现应该是短连接较多,需要通过修改内核参数解决,CLOSE_WAIT状态则是服务器程序可能有问题,服务器需要主动close,以及epoll多路复用模型中使用linger调整关闭等待时间分析解决这类问题,关...

  • 回答 6
    已采纳

    chmod 命令:chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。1. 文字设定法:chmod [who] [+ | - | =] ...

  • 回答 3
    已采纳

    Linux chattr 命令一般,chattr命令用于更改Linux文件上属性。以下是它的语法:chattr [ -RVf ] [ -v version ] [ mode ] files...下面是man手册对它的描述:chattr 改变一个Linux文件系统上的文件属性。一个通用格式是:+-=[aAcCdDeijsStTu]‘+’选项,将给...

  • 回答 8
    已采纳

    命令格式cat [选项] [文件]...命令功能cat主要有三大功能:一次显示整个文件:cat filename从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.将几个文件合并为一个文件:cat file1 file2 > file命令参数-n 或 --number 对输出的所有行编号,...

  • 回答 3

    shell的执行过程: 首先,脚本是从上至下从左至右执行每一行的语句的。 其次,当执行脚本时会进入一个新的shell,也成为nologin shell,在该shell下执行完成后,再返回执行前的shell。更加详细的讲解请楼主参考鸟哥linux网站中的bash shell章节有图能让您更...

  • 回答 3

    学习linux为什么要学习Shell: 1、首先我们了解一下shell编程是什么,其实shell编程就是一坨linux命令的集合再加上一些控制语句而已 2、为什么要学习linux下的shell编程,我们平时在做运维工作时总会遇到一些重复的工作,如果我们会shell编程的话就可以将这些...

  • 回答 6

    1.服务器一般情况下只有在进行项目部署或者是出现问题的时候才需要进行远程连接操作,在进行连接的时候我们一般都是使用的外部连接软件2.启动软件,点击快速连接,我们要选择连接的协议3.协议选择要然后填写服务器的IP地址和用户名,然后点击连接4.在通过验证...

  • 回答 6

    1.正确的关机流程为:sysnc ? shutdown ? reboot ? halt;2.sync 将数据由内存同步到硬盘中。3.shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:4.shutdown –h 10 ‘This server will shutdown after 10 mins’ ...

  • 回答 12
    已采纳

    一个典型的Linux发行版包括:Linux核心,一些GNU库和工具,命令行shell,图形界面的X窗口系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公包,编译器,文本编辑器到科学工具的应用软件。主流的Linux发行版:Ubuntu, DebianGNU/Linux ,Fedora,Gento...

  • 回答 8
    已采纳

    1、Linux操作系统使用虚拟文件系统(VFS)向上和用户进程文件访问系统调用接口,向下和具体不同文件系统的实现接口。VFS屏蔽了具体文件的实现细节,向上提供统一的操作接口。通过VFS可以实现任意的文件系统,这些文件系统通过文件访问系统调用都可以访问。所...

  • 回答 7
    已采纳

    linux的基础启动流程1. 加载BIOS的硬件信息,并获取第一个启动设备的代号。2. 读取第一个启动设备的MBR的引导加载程序(即lilo、grub、spfdisk等)的启动信息。3. 加载操作系统的核心信息,核心开始解压,并尝试驱动所有的硬件设备。4. 核心执行init程序并获...

  • 回答 9
    已采纳

    点击运行或者win+R调出运行窗口,输入regedit打开Windows注册表在注册表找到如下位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config找到AnnounceFlags 双击修改值为5保存1.  在注册表找到如下位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentC...

  • 回答 11
    已采纳

    你可以经常去一些linux的论坛!~那里有许多知识的~你也可以下载一些自学教程!~当然是从入门开始了!~安装和使用的基本命令什么的!~和你学windows开始一样,由浅入深!~http://www.linux8.net/http://www.chinalinuxpub.com/http://linux.chinaitlab.com/Lin...

  • 回答 15
    已采纳

    1、cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:cd /root/Docements # 切换到目录/root/Docementscd ./path          # 切换到当前目录下的path...

  • 回答 7
    已采纳

    目录/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/etc存放系统管理和配置文件/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /usr用于存放系统应用程序,比较重要的目录/u...

没有解决我的问题,去提问