标签分类
技术文章
当前位置:主页 > 计算机编程 > python > linux无联网克隆python系统环境

linux无法联网怎么下载python

  • 发布时间:
  • 作者:码农之家原创
  • 点击:100

linux无联网克隆python系统环境

这篇文章主要知识点是关于linux,无联网,克隆,python,系统环境,linux无联网克隆python系统环境,Linux下多个Python版本安装教程 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

从零开始学Python数据分析与挖掘
  • 类型:数据挖掘大小:67.8 MB格式:PDF出版:清华大学出版社作者:刘顺祥
立即下载

有时候在无法联网的情况下需要搭建环境,且必须使用之前的环境,因为你的代码需要在同样的环境下运行。这样方便开发

方法一:

1.下载指定的包到指定文件夹。
  pip list #查看安装的包
    pip freeze > requirements.txt   将已经通过pip安装的包的名称记录到 requirements.txt文件中
  创建存放安装包的目录:mkdir /packs
            pip install   --download   /packs  pandas(存放一个pandas包)
                         或
           pip install   --download   /packs -r requirements.txt(存放requirements.txt列出的所有包)
2.安装指定的离线包
   pip install   --no-index   --find-links=/packs/   pandas 或
   pip install   --no-index   --find-links=/packs/   -r   requirements.txt    (也可能是 --find-link)

但是这种方法经过本人测试会出现很多问题,比如在 pip install --download /packs -r requirements.txt该操作可能会出现无法下载某些包,而且下载完成包后在新的服务器上安装可能缺少依赖关系安装不成功。

方法二:

那就是利用集成环境---Anaconda,这个安装的话超级简单,因为这是一个封装好的环境,你之后下载安装的python第三方包都在这个环境下,这样你只需把安装好的Anconda包拷贝到未联网的服务器下就可以了(当然需要在.bashrc上配置)。

第一步现在安装Anconda:

从官网下载Anconda安装包,这里我用的是Anaconda3-5.2.0-Linux-x86_64.sh。

bash Anaconda3-5.2.0-Linux-x86_64.sh

一路Enter,Y,然后提醒你配置环境

echo 'export PATH="/home/wwk/anaconda3/bin:$PATH"' >> ~/.bashrc
source .bashrc

当然中间还让你选择安装路径,一般选择默认就OK,现在验证是否安装成功

conda -V

如果出现版本号,那么就成功了。

第二步安装自己需要的包:

Anconda 里面集成pip,和 conda,当然这两个都可以下载各种包,pip isntall somepackage ,conda install somepackage但是用conda命令下载的可能会出现一个问题 ,你所需要的安装包不一定会命中(因为国内镜像通道可能找不到),以py2neo包为例

wwk@wwk-Aspire-V3-572G:~$ conda install py2neo
Fetching package metadata .............
 
PackageNotFoundError: Packages missing in current channels:
            
  - py2neo
 
We have searched for the packages in the following channels:
            
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
  - https://repo.continuum.io/pkgs/main/linux-64
  - https://repo.continuum.io/pkgs/main/noarch
  - https://repo.continuum.io/pkgs/free/linux-64
  - https://repo.continuum.io/pkgs/free/noarch
  - https://repo.continuum.io/pkgs/r/linux-64
  - https://repo.continuum.io/pkgs/r/noarch
  - https://repo.continuum.io/pkgs/pro/linux-64
  - https://repo.continuum.io/pkgs/pro/noarch

那么我们有两种办法:

1、最直接的话我们从其他途径直接下载我们需要的安装包,比如从github下载zip,tar.gz等压缩包解压后进入解压目录 使用python setup.py install命令安装(注意此时需要 which python看下环境是否在anconda中,这样才能确保安装到anconda环境中),其实还可以直接pip(anconda内嵌)安装也比较方便。

2、那么接着上面出现的问题解决,输入 :anaconda search -t conda py2neo

 
wwk@wwk-Aspire-V3-572G:~$  anaconda search -t conda py2neo
Using Anaconda API: https://api.anaconda.org
Packages:
     Name                      |  Version | Package Types   | Platforms       | Builds    
     ------------------------- |   ------ | --------------- | --------------- | ----------
     auto/py2neo               |    1.6.4 | conda           | linux-64, linux-32 | py27_0    
                                          : http://nigelsmall.com/py2neo
     bioconda-legacy/py2neo    |    3.1.2 | conda           | linux-64, osx-64 | py36_0, py27_0, py35_0, py34_0
     cmckeague/py2neo          |      3b1 | conda           | linux-armv7l    | py27_0    
                                          : Python client library and toolkit for Neo4j
     conda-forge/py2neo        |  4.0.0b2 | conda           | linux-64, win-32, osx-64, win-64 | py36_0, py35_0, py27_0
                                          : Python client library and toolkit for Neo4j
     ivoflipse/py2neo          |    1.6.4 | pypi, conda     | win-64          | py27_0    
                                          : Python client library for the Neo4j REST server
     mutirri/py2neo            |    2.0.8 | conda           | linux-64, win-32, win-64, osx-64 | py27_0, py33_0, py35_0, py34_0
                                          : Python client library and toolkit for Neo4j
Found 6 packages
 
Run 'anaconda show <USER/PACKAGE>' to get installation details

之后输入:anaconda show conda-forge/py2neo 就可以看到你要安装包的通道

wwk@wwk-Aspire-V3-572G:~$ anaconda show conda-forge/py2neo
Using Anaconda API: https://api.anaconda.org
Name:    py2neo
Summary: Python client library and toolkit for Neo4j
Access:  public
Package Types:  conda
Versions:
   + 4.0.0b2
   + 3.1.2
 
To install this package with conda run:
     conda install --channel https://conda.anaconda.org/conda-forge py2neo

根据最后一行的提示我们copy输入即可

wwk@wwk-Aspire-V3-572G:~$  conda install --channel https://conda.anaconda.org/conda-forge py2neo
Fetching package metadata ...............
Solving package specifications: .
 
Package plan for installation in environment /home/wwk/anaconda3:
 
The following NEW packages will be INSTALLED:
 
    neo4j-python-driver: 1.1.0rc1-py36_0       conda-forge                                            
    py2neo:              4.0.0b2-py36_0        conda-forge                                            
 
The following packages will be UPDATED:
 
    conda:               4.3.30-py36h5d9f9f4_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free --> 4.5.11-py36_0 conda-forge
    conda-env:           2.6.0-0               https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free --> 2.6.0-1       conda-forge
 
Proceed ([y]/n)? y
 
conda-env-2.6. 100% |#####################################################################| Time: 0:00:00   1.34 MB/s
neo4j-python-d 100% |#####################################################################| Time: 0:00:00  72.70 kB/s
py2neo-4.0.0b2 100% |#####################################################################| Time: 0:00:00 176.24 kB/s
conda-4.5.11-p 100% |#####################################################################| Time: 0:00:02 230.86 kB/s

最后不要忘记打开python 环境导入包试下,是否成功。

上面这些操作也就是在有网的环境下完全布置好你的运行环境。那么恭喜你已经完成了99%了

第三步:把安装后的anconda3压缩打包好anconda3.zip,拷贝到你要安装的未联网的服务器上,我放在了/home/wwk/anaconda3

最后:

unizp anaconda3.zip -d /home/wwk/anaconda3
vim .bashrc
 
# added by Anaconda3 installer
export PATH="/home/wwk/anaconda3/bin:$PATH"

 

Linux下多个Python版本安装教程

因为环境或学习的需要,我们可能需要在服务器上安装多个python版本,安装一个更新的python版本后,使用软链来进行共存。

这个时候需要进行源码编译安装。

当然后续开发项目可以直接跑在虚拟环境下隔离开来,就不再需要在服务器上安装多个不同版本的包了。

下载Python源码

从http://www.python.org/download/根据需要的版本下载源文件。

Linux下多个Python版本安装教程

例如上图就是我在官网直接找到3.5.6版本的下载页面,点击的tar源码包进行下载。

编译安装

补充

注意编译安装python前最好先保证系统己安装上以下库

yum install zlib
yum install zlib-devel
yum install openssl
yum install openssl-devel
yum install readline-devel

解压源码包

tar zxvf Python-3.5.6.tgz
cd Python-3.5.6

配置选项

sudo ./configure --enable-optimizations --prefix=/usr/local/python-3.5.6 --with-zlib --with-readline
--enable-optimizations 为最优安装,建议使用这个参数。
--prefix为指定安装的路径

进行编译安装

sudo make
sudo make install

修改Python软链

默认python命令是在/usr/bin/目录下,需要在这里把软链修改成3.5.6的版本,顺便建立一个3.5.6的软链。

Linux下多个Python版本安装教程

上图是原默认软链接,是python2.7的,其实它也己经默认建立了一个python2的软链接了。

重新命名默认python软链接为python2.7以便3.5的版本成为默认环境变量

sudo mv /usr/bin/python /usr/bin/python2.7

建立python3.5版本的软链接

sudo ln -s /usr/local/python-3.5.6/bin/python3.5 /usr/bin/python

当然,也可以不做上一步,而是将3.5版本的软链接成python3之类也是可行的。

Linux下多个Python版本安装教程

比如我做的就是新增python3的软链接指向python3.5所在的目录。
顺便也将配置文件也做了一个软链接指向:

sudo ln -s /usr/local/python-3.5.6/bin/python3.5-config /usr/bin/python3-config

补充

注意 如无特别需要,推荐命名成不同python的软链接,因为你会发觉要是你直接改了原来指向旧版本的软链接的话,pip,virtualenv等依赖原版本python的工具需要改它的py文件头的环境变量。

Linux下多个Python版本安装教程

如果你修改了原软链接,使得python实际指向的是新版本的python的话,pip等仍依赖旧版本的工具要么重装要么修改它py文件的首行,按实际情况重新指向你的旧版本原版本的python环境,例如此处我就可直接改成/usr/bin/python2

虚拟环境设置不同版本的python

创建好项目目录,cd进到目录下。

在创建python虚拟环境时,可以指定虚拟环境要使用的python版本,例如下命令(使用-p参数指明python解释器的路径):

 -p PYTHON_EXE, --python=PYTHON_EXE
 The Python interpreter to use, e.g.,
 --python=python3.5 will use the python3.5 interpreter
 to create the new environment. The default is the
 interpreter that virtualenv was installed with
 (/usr/bin/python)

例:

virtualenv -p /usr/bin/python2 ENV2.7 #创建python2.7的虚拟环境
virtualenv -p /usr/bin/python3 ENV3.5 #创建python3.5的虚拟环境
virtualenv --python=python3 my-env #创建python3.5的虚拟环境

之所以装多个版本的python,有一个原因很重要,也就是想要使用virtualenv创建隔离的虚拟环境的时候指定不同python版本。但是前面我进行编译安装的时候没有指定编译安装上zlib库,就会出现以下如图问题:

Linux下多个Python版本安装教程

报找不到zlib模块错误。

所以最好还是系统原环境变量安装成高版本的python,或进行python编译安装的时候记得加上--with-zlib
最好--with-zlib-develreadline也带上。

当然,补救办法也是有的,就是重新进行编译安装。
(重新进行本文最开始的操作,当然本文最开始笔者己经补充更正过了编译安装时的配置。)

笔者由于重新编译后仍然报zlib模块错误,笔者并不想弄污原来python2.7的环境,所以决定尝试virtualenv下载源码来使用,而zlib也进行编译安装来让python3也能正常导入zlib模块。

下载zlib模块并进行编译安装

官网http://www.zlib.net/下载最新版本的zlib源码文件,我下载的是zlib-1.2.11.tar.gz

安装zlib:

tar xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11

建议默认路径安装,编译三部曲:

./configure
make
make install

python导入zlib

如下图,编译安装完成zlib后,进python3测试己经可能正常导入zlib包。

Linux下多个Python版本安装教程

zlib安装完后,libz.a/usr/local/lib/,opensusezlib.h默认放在/usr/local/include/中。
其它linux的zlib.h文件一般在/usr/include中。

重新编译python并指定zlib

如果还发生少数导入不成功,或你想直接软链接升级python旧版本的,可能需要重新编译python。

进入Python源码文件目录,重新编译Python

sudo ./configure --enable-optimizations --prefix=/usr/local/python-3.5.6 --with-zlib=/usr/include

或者:

./configure --enable-optimizations --prefix=/usr/local/python-3.5.6 --with-zlib-dir=/usr/local/lib

都可以完成python对zlib库的支持,在python源码中直接import zlib即可使用zlib了。

下载virtualenv源码包

直接到pypi下载16.0.0版本。
tar命令进行解压

tar xvfz virtualenv-16.0.0.tar.gz
cd virtualenv-16.0.0

此目录下文件如下,我们主要用到的并不是setup安装,而是直接使用它的virtualenv.py文件。

Linux下多个Python版本安装教程

virtualenv创建虚拟环境

在项目目录下直接指定python版本及virtualenv.py的绝对路径进行创建虚拟环境:

sudo python3 /home/operation/virtualenv-16.0.0/virtualenv.py py3

Linux下多个Python版本安装教程

可以不进行全局安装,而是用户下进行虚拟化环境可以直接使用python3 后接virtualenv.py运行,完美解决需求。

也可以使用原python2下的全局virtualenv来执行,一样可以创建,如:

operation@opensuse-wordpress:/work> sudo virtualenv --python=python3 my_py3_env
[sudo] password for root: 
Running virtualenv with interpreter /usr/bin/python3
Using base prefix '/usr/local/python-3.5.6'
New python executable in /work/my_py3_env/bin/python3
Also creating executable in /work/my_py3_env/bin/python
Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Installing setuptools, pip, wheel...done.

虚拟隔离环境目录如下:

Linux下多个Python版本安装教程

具体virtualenv的使用命令等见相关文章,在此就不再详述。
如此,在liunx下己经可以实现多版本的python完美共存。

更多关于python安装教程的文章请参考《python各版本安装教程》

更多精彩书单,请点击python编程必备书单

领取干货:零基础入门学习python视频教程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到等python文章进一步学习,感谢大家的阅读和支持。

上一篇:怎么查电脑应该安装python哪个版本

下一篇:python legend设置不要边框的方法技巧

展开 +

收起 -

学习笔记
网友NO.225930

Python通过paramiko远程下载Linux服务器上的文件实例

如下所示: #!/usr/local/bin/python# encoding:utf-8 import paramikoimport os HOST_IP='59.110.12.72'REMOTE_PATH='/proc'REMOTE_FILENAME='meminfo'LOCAL_PATH='./proc'USERNAME='niu'PASSWORD='123456' def remote_scp(host_ip,remote_path,local_path,file_name,username,password): t = paramiko.Transport((host_ip,22)) t.connect(username=username, password=password) # 登录远程服务器 sftp = paramiko.SFTPClient.from_transport(t) # sftp传输协议 src = remote_path+'/'+file_name des = local_path+'/'+file_name sftp.get(src,des) t.close() if not os.path.isdir(LOCAL_PATH): os.makedirs(LOCAL_PATH)if not os.path.isfile(LOCAL_PATH+'/'+REMOTE_FILENAME): fp=open(LOCAL_PATH+'/'+REMOTE_FILENAME,'w') fp.close() remote_scp(HOST_IP,REMOTE_PATH,LOCAL_PATH,REMOTE_FILENAME,USERNAME,PASSWORD) 以上这篇Python通过paramiko远程下载Linux服务器上的文件实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

网友NO.906588

《Python Linux系统管理与自动化运维》学习总结

1. 1秒钟启动一个下载服务器 在要访问文件的目录下执行:python3 -m http.server 在网页上访问:http://ip:8000/ 就可以下载该目录下的文件(windows中也可以用) 2. python 一行试解析json echo {job: developer, name: lmx, sex: male} | python -m json.tool cat 1.txt | python -m json.tool (1.txt中是json类型的数据) 3.检查第三方库是否正确安装 如果是单个服务器可以直接进pyhon编辑器中用import 库名 来检查 如果是多个远程服务器时:python -c import 库名 4.pip子命令 4.1 加速pip安装的技巧 用pip安装库时下载慢是可以用第三方的源。 通过pip命令的-i选项指定镜像源即可。如下所示: pip install -i https://pypi.douban.com/simple/ flask 每次都要指定镜像源的地址比较麻烦,我们也可以修改pip的配置文件,将镜像源写入配置文件中。 对于Linux系统来说,需要创建~/.pip/pip.conf文件,然后在文件中保存如下内容: $ cat pip.conf [global] index-url = https://pypi.douban.com/simple/ 5. python调试器 5.1 标准库的pdb pdb是Python自带的一个库,为Python程序提供了一种交互式的源代码调试功能,包含了现代调试器应有的功能,包括设置断点、单步调试、查看源码、查看程序堆栈等。如果读者具有C或C++程序语言背景,则一定听说过gdb。gdb是由GNU开源组织发布的一个命令行程序调试工具。如果读者之前使用过gdb,那么几乎不……

网友NO.121643

python 读取Linux服务器上的文件方法

使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko#服务器信息,主机名(IP地址)、端口号、用户名及密码hostname = ""port = 22username = ""password = ""client = paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPolicy())client.connect(hostname, port, username, password, compress=True)sftp_client = client.open_sftp()remote_file = sftp_client.open("/home/...txt")#文件路径try: for line in remote_file: print(line)finally: remote_file.close() 以上这篇python 读取Linux服务器上的文件方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

网友NO.847564

Python实现Linux监控的方法

工作原理:基于/proc 文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新引导内核系统,这是通过/proc 虚拟文件系统实现的。/proc 文件虚拟系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做“/proc”),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the fly)改变设置(通过改变内核参数)。与其他文件系统不同,/proc 存在于内存而不是硬盘中。proc 文件系统提供的信息如下: 进程信息:系统中的任何一个进程,在 proc 的子目录中都有一个同名的进程 ID,可以找到 cmdline、mem、root、stat、statm,以及 status。某些信息只有超级用户可见,例如进程根目录。每一个单独含有现有进程信息的进程有一些可用的专门链接,系统中的任何一个进程都有一个单独的自链接指向进程信息,其用处就是从进程中获取命令行信息。 系统信息:如果需要了解整个系统信息中也可以从/proc/stat 中获得,其中包括 CPU 占用情况、磁盘空间、内存对换、中断等。 CPU 信息:利用/proc/CPUinfo 文件可以获得中央处理器的当前准确信息。 负载信息:/proc/loadavg 文件包含系统负载信息。 系统内存信息:/proc/meminfo 文件包含系统内存的详细信息,其中显示……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明