zoukankan      html  css  js  c++  java
  • linux 虚拟环境问题

    1.python环境

    python2和python3命令用来区分python版本

    pip2和pip3命令用来区分pip,你的包到底安装在哪里pip3 install xxx

    sudo apt install python3-pip这是安装pip3

    2.安装虚拟环境

    pip install virtualenvwrapper #直接安装虚拟环境容器来顺便安装virtualenv

    有可能:必须使用sudo pip来安装virtualenvwrapper。不是pip3
    注意需要先修改环境变量。否则命名无法使用


    vim ~/.bashrc 在最底部增加
    #这是为了让 WORKON 命令能用。
    export WORKON_HOME=$HOME/.virtualenvs
    source /usr/local/bin/virtualenvwrapper.sh
    别忘记重新加载 bash 配置文件 source ~/.bashrc


    然后你需要用 mkvirtualenv xxx -p python3 #注意后面要跟上 -p python3,
    来创建一个叫xxx 的python 3虚拟环境
    workon xxx #切换到你的虚拟环境

    3. .sh文件:

    脚本文件,一般都是bash脚本。想运行的话就用sh命令运行 sh xxx.sh,.sh为Linux的脚本文件,我们可以通过.sh执行一些命令,可以理解为windows的.bat批处理文件

    4.点命令:.

    命令和source是同一个命令,可以理解为source的缩写,简称点命令。

    5.执行方式:

    1).  /test.sh

    2)sh test.sh

    3). test.sh

    4)source test.sh

    他们有何区别?

    1)第一种方式,是在当前的shell执行脚本本身,也就是说把test.sh当成一个文件执行,这时候我们需要拥有test.sh的运行权限(x权限),而且当我们在执行此命令时,有2个新进程在运行,一个是test.sh,一个是sleep,如果我们在执行第一个sleep时按ctrl+c终止脚本,test.sh和sleep一起终止,并且第二个sleep不会执行,因为整个test.sh运行已经终止。

    2)第二种方式,是新建一个shell执行test.sh脚本里面的命令,不需要执行权限,有读取权限(r权限)即可,在执行此命令时,有2个新进程在运行,一个是bash,一个是sleep,如果执行第一个sleep时按ctrl+c,bash被终止,结果和第一种方式一样,第二个sleep不会执行。

    3)第三种方式,是在当前shell执行test.sh里面的命令,不需要执行权限,有读取权限(r权限)即可,在执行此命令时,只有一个新进程在运行,就是sleep,如果在执行第一个sleep时按ctrl+c终止,那么第二个sleep接着运行,直到脚本所有命令执行完。

    4)第四种方式和第三种方式一致。

    6.export 和 sourse

    sourse在当前shell中执行,而.是调用了一个子shell

    export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

    一般把环境变量写到bashrc中,因为这样   每次登陆的时候可以使用

    7.关于 ~/.bashrc文件

    7.1.加环境变量

    假定想添加的环境变量路径为:/opt/my-tools/Android-sdk/tools

    1 进入用户的根目录

    cd $HOME 或 cd ~

    2 然后打开.bashrc若不存在则新建.bashrc文件

    vim .bashrc(新建文件)

    3 在.bashrc页面最后加上想要加的路径

    export PATH=$PATH:/opt/my-tools/android-sdk/tools

    4 最后执行

    source ~/.bashrc

    7.2.说明

    1.Linux系统默认使用的shell为bash,在shell启动的时候会读取根据情况读取.bash_profile和.bashrc文件。
    准确的说,当shell是交互式登录shell时,读取.bash_profile文件,如在系统启动、远程登录或使用su -切换用户时;当shell是交互式登录和非登录shell时都会读取.bashrc文件,如:在图形界面中打开新终端或使用su切换用户时,均属于非登录shell的情况。
    简单的说,.bash_profile只在会话开始时被读取一次,而.bashrc则每次打开新的终端时,都会被读取。

    2.~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。所以一般优先把变量设置在.bashrc里面。比如在crontab里面执行一个命令,.bashrc设置的环境变量会生效,而.bash_profile不会。

    3.配置文件有两个级别, 系统级(/etc)和用户级(~/), 每次调用优先调用系统级, profile用于登录式shell, 而bashrc用于每个交互式shell

    4.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有”.”是用来表示当前目录的。sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。

    source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

    7.3.创建虚拟环境

    第一步就是打开  ~/.bashrc文件 然后在最后写入。把下面几行加入:

    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7 # 这句是为了防止环境变量$PATH中已有其它环境的python

    export WORKON_HOME=$HOME/.virtualenvs # 放所有虚拟环境的地方

    source /usr/local/bin/virtualenvwrapper.sh #激活virtualenvwrapper

    最后执行source ~/.bashrc

     
  • 相关阅读:
    将DotNetBar添加到工具箱中
    C#写的CRC16检验算法
    C# 递归程序 获取某个节点下的全部子节点
    软件著作权申请中源代码文档的编辑方法
    c#使用Flash控件AxShockwaveFlash
    国内银行CNAPS CODE 查询
    中国版权保护中心-无法注册的解决办法
    jquery weui做的三级联动
    Validation of viewstate MAC failed 解决办法
    OllyDbg 介绍
  • 原文地址:https://www.cnblogs.com/BlueFire-py/p/8886267.html
Copyright © 2011-2022 走看看