分类 Python 下的文章


E:\workspace\rust\emsdk>emsdk_env.bat
Failed to read environment variable PATH:
No module named win32api
Failed to read environment variable PATH:
No module named win32api
Traceback (most recent call last):
  File "E:\workspace\rust\emsdk\\emsdk", line 2342, in <module>
    sys.exit(main())
  File "E:\workspace\rust\emsdk\\emsdk", line 2237, in main
    env_string = construct_env(tools_to_activate, len(sys.argv) >= 3 and 'perm' in sys.argv[2])
  File "E:\workspace\rust\emsdk\\emsdk", line 1917, in construct_env
    newpath, added_path = adjusted_path(tools_to_activate)
  File "E:\workspace\rust\emsdk\\emsdk", line 1884, in adjusted_path
    existing_path = existing_path.split(ENVPATH_SEPARATOR)
AttributeError: 'NoneType' object has no attribute 'split'

Read more...


安装

通过默认pip全局安装

sudo pip3 install virtualenv

安装基础包

使用

因为懒,所以这里建议安装 virtualenvwrapper

virtualenvwrappervirtualenv 的扩展管理包, 用于更方便管理虚拟环境。

virtualenvwrapper

安装

通过默认pip全局安装

sudo pip3 install virtualenvwrapper

在~/.bashrc中添加环境变量

export WORKON_HOME='~/.venvs'
export PIP_VIRTUALENV_BASE=WORKON_HOME 
#export PROJECT_HOME=$HOME/kelvin  
export VIRTUALENVWRAPPER_SCRIPT=/usr/share/virtualenvwrapper/virtualenvwrapper.sh
source /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh

编辑保存完后,运行source ~/.bashrc,使设置生效

使用

可使用virtualenvwrapper --help查看所有命令方法

但是常用就下面这几个

创建环境:mkvirtualenv [环境名]
删除环境:rmvirtualenv [环境名]
激活环境:workon [环境名]
退出环境:deactivate
所有环境:workon / lsvirtualenv -b

example:

当前环境安装有Python2.7Python3.5,想自由切换Python运行环境
先设置好虚拟环境

mkvirtualenv -p /usr/bin/python2 cv2 # cv2就是你设置的环境名
mkvirtualenv -p /usr/bin/python3 cv3 # cv3就是你设置的环境名

列出所有虚拟环境,可以得到下面信息

$ workon
cv2
cv3
运行workon cv2,就切换当前环境为Python2.7

运行workon cv3,就切换当前环境为Python3.5


Python是面向对象的程序设计语言,Python把所有东西都被视作对象。

Python中有一类特殊的方法,即魔术方法-Magic Method(带两个__的方法),如__new____init__

要想理解__new__,我们还要搞懂__init__

__init__方法是在初始化一个类实例的时候调用,但__init__其实并不是实例化一个类的时候第一个被调用的方法,最先被调用的方法其实是__new__方法。

__new__这个方法负责创建类实例,而__init__负责初始化类实例。__new__函数可以用来自定义对象的创建,它的第一个参数是这个类的引用,然后是一些构造参数;返回值通常是对象实例的引用。

Read more...