Windows XP搭建virtualenv

       反复试验几遍终于把virtualenv弄好了,在此做个记录,希望遇到相同问题的朋友可以参考。

       我的python是2.7.6版,安装在 D:\Python27


      第一种方法,直接解压使用:

        步骤1,下载:

下载virtualenv, https://pypi.python.org/pypi/virtualenv#downloads 或者 https://github.com/pypa/virtualenv/tarball/develop

        步骤2,解压、创建文件夹:

本来virtualenv 应该是可以直接使用的,绿色软件。官方如下解释,注意标红的语句:

To use locally from source:

$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
$ tar xvfz virtualenv-X.X.tar.gz
$ cd virtualenv-X.X
$ python virtualenv.py myVE

       于是下载了virtualenv-1.11.4.tar.gz,解压到D盘根目录;在D盘根目录新建一个文件夹暂且命名为 MyENV 吧。

       步骤3,创建virtual environment :

       运行cmd

D:\>cd MyENV

D:\MyENV>D:\Python27\python D:\virtualenv-1.11.4\virtualenv.py TestENV       注释:我把D:\Python27加入环境变量,故用绝对路径运行python


       virtualenv-1.11.4\virtualenv_support 中的包自带了pip和setuptools,所以它会自动安装setuptools和pip,但是我运行了出现了如下结果,注意标红的结果:


New python executable in TestENV\Scripts\python.exe
D:\MyENV\TestENVInstalling setuptools, pip...Ignoring indexes: https://pypi.python.org/simple/
Downloading/unpacking setuptools
Cleaning up...
Exception:
Traceback (most recent call last):
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\commands\install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\req.py", line 1177, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\index.py", line 209, in find_requirement
    file_locations, url_locations = self._sort_locations(locations)
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\index.py", line 128, in _sort_locations
    sort_path(os.path.join(path, item))
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\index.py", line 109, in sort_path
    if mimetypes.guess_type(url, strict=False)[0] == 'text/html':
  File "D:\Python27\Lib\mimetypes.py", line 297, in guess_type
    init()
  File "D:\Python27\Lib\mimetypes.py", line 358, in init
    db.read_windows_registry()
  File "D:\Python27\Lib\mimetypes.py", line 258, in read_windows_registry
    for subkeyname in enum_types(hkcr):
  File "D:\Python27\Lib\mimetypes.py", line 249, in enum_types
    ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 9: ordinal not in range(128)


Storing debug log for failure in C:\Documents and Settings\Administrator\pip\pip.log

  Complete output from command D:\MyENV\TestENV\Scripts\python.exe -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip:
  Ignoring indexes: https://pypi.python.org/simple/
Downloading/unpacking setuptools
Cleaning up...
Exception:
Traceback (most recent call last):
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\commands\install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\req.py", line 1177, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\index.py", line 209, in find_requirement
    file_locations, url_locations = self._sort_locations(locations)
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\index.py", line 128, in _sort_locations
    sort_path(os.path.join(path, item))
  File "D:\virtualenv-1.11.4\virtualenv_support\pip-1.5.4-py2.py3-none-any.whl\pip\index.py", line 109, in sort_path
    if mimetypes.guess_type(url, strict=False)[0] == 'text/html':
  File "D:\Python27\Lib\mimetypes.py", line 297, in guess_type
    init()
  File "D:\Python27\Lib\mimetypes.py", line 358, in init
    db.read_windows_registry()
  File "D:\Python27\Lib\mimetypes.py", line 258, in read_windows_registry
    for subkeyname in enum_types(hkcr):
  File "D:\Python27\Lib\mimetypes.py", line 249, in enum_types
    ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 9: ordinal not in range(128)

Storing debug log for failure in C:\Documents and Settings\Administrator\pip\pip.log
----------------------------------------
...Installing setuptools, pip...done.
Traceback (most recent call last):
  File "D:\virtualenv-1.11.4\virtualenv.py", line 2338, in <module>
    main()
  File "D:\virtualenv-1.11.4\virtualenv.py", line 824, in main
    symlink=options.symlink)
  File "D:\virtualenv-1.11.4\virtualenv.py", line 992, in create_environment
    install_wheel(to_install, py_executable, search_dirs)
  File "D:\virtualenv-1.11.4\virtualenv.py", line 960, in install_wheel
    'PIP_NO_INDEX': '1'
  File "D:\virtualenv-1.11.4\virtualenv.py", line 902, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command D:\MyENV\TestENV\Scripts\python.exe -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 2

     

根据UnicodeDecodeError when install in Windows 7 安装setuptools 失败 使用ez_setup.py安装setuptools报错,这几篇文章,

以及官方 Issue9291Side by Side Diff: Lib/mimetypes.py显示

是D:\Python27\Lib\minetypes.py  中的错误,的确和我安装的(上面红色文字)错误一样。就是windows中文用户,注册表HEY_CLASSES_ROOT中存在中文编码的文字,

导致minetypes.py错误。

打开 D:\Python27\Lib\minetypes.py  ,

解决办法 1:

查找

default_encoding = sys.getdefaultencoding()

在它前面增加这几行:

if sys.getdefaultencoding() != 'gbk':
    reload(sys)
    sys.setdefaultencoding('gbk')

default_encoding = sys.getdefaultencoding()

如果 gbk,编码不行可以试试 utf8 或者其他编码,总之应该是系统的编码方式。

解决办法 2:

请按这篇文章,Side by Side Diff: Lib/mimetypes.py显示,将minetypes.py 修改成右侧的样子。


最终结果:

再次执行 D:\MyENV>D:\Python27\python D:\virtualenv-1.11.4\virtualenv.py TestENV

就成功了。这是我在虚拟机里反复测试的结果,不过路径改成了C盘


这种方法的好处是不会在Python27的文件夹和 Lib\site-packages中生成文件,可以保持Python27安装环境的整洁。

而setuptools 和 pip 都安装到了虚拟环境 TestENV 中。

    

第二种方法,setuptools + pip + virtualenv :

       第一次安装根本没注意看minetypes.py的错误,以下的两种安装方式也应该先按第一种方法修改minetypes.py, 否则将失败。

       参考了这两篇文章,

How To Install Python, pip, and virtualenv on Windows with PowerShell

Windows Python虚拟环境配置(Distribute + pip + virtualenv + virtualenvwrapper-powershell)


注:(不过这两篇文章首先不是在windows xp;第二我没有PowerShell;第三我试过装distribute了,它能够安装成功,

但是再使用vitualenv的时候还是出现第一步中minetypes.py的错误,后来才知道应该先修改minetypes.py。

而且貌似distribute本来是setuptools的分支,用来替代setuptools的,但现在它好像又被合并回setuptools中了)


方法1.通过pip安装

如下是pip的安装方法:

如果setuptools 或者 distribute没安装的话,get-pip.py会自动安装setuptools的。

Install pip

To install or upgrade pip, securely download get-pip.py. [1]

Then run the following (which may require administrator access):

python get-pip.py

If setuptools (or distribute) is not already installed, get-pip.py willinstallsetuptools for you.[2]

To upgrade an existing setuptools (or distribute), run pip install -U setuptools[3]


直接下载 get-pip.py ,并运行

python get-pip.py

安装完成之后,再通过pip安装virtualenv

pip install virtualenv

方法2.先安装setuptools,再安装pip,再安装virtualenv:

根据setuptools官方文档 说明:

For Windows 7 and earlier, download ez_setup.py using your favorite webbrowser or other technique and "run" that file.

下载 ez_setup.py

执行

python ez_setup.py 

再按照方法1执行就行了。



参考文献:

Side by Side Diff: Lib/mimetypes.py  : http://bugs.python.org/review/9291/diff/1663/Lib/mimetypes.py

Issue9291  :http://bugs.python.org/issue9291

UnicodeDecodeError when install in Windows 7https://bitbucket.org/pypa/setuptools/issue/127/unicodedecodeerror-when-install-in-windows

安装setuptools 失败http://www.oschina.net/question/1409342_134600

使用ez_setup.py安装setuptools报错http://blog.csdn.net/window_10/article/details/19686007

How To Install Python, pip, and virtualenv on Windows with PowerShell http://www.tylerbutler.com/2012/05/how-to-install-python-pip-and-virtualenv-on-windows-with-powershell/

Windows Python虚拟环境配置(Distribute + pip + virtualenv + virtualenvwrapper-powershell)http://my.phirobot.com/blog/2014-02-python_in_windows.html



Windows 上安装和使用 `virtualenv` 非常简单。以下是安装步骤: 1. 首先,确保您已经安装了 Python。您可以从 Python 官方网站(https://www.python.org)下载并安装最新版本的 Python。 2. 打开命令提示符(CMD)或 PowerShell。您可以在 Windows 搜索栏中键入 "cmd" 或 "powershell" 并打开相应的应用程序。 3. 确保您的环境变量中已经添加了 Python 的安装路径。您可以在命令提示符或 PowerShell 中输入以下命令来验证 Python 是否正确安装: ``` python --version ``` 如果您能够看到 Python 的版本号,则说明 Python 安装成功。 4. 使用以下命令安装 `virtualenv`: ``` pip install virtualenv ``` 这将使用 pip 包管理器安装 `virtualenv`。 5. 创建一个新的虚拟环境。在命令提示符或 PowerShell 中,导航到您想要创建环境的目录,并运行以下命令: ``` virtualenv myenv ``` 这将创建一个名为 `myenv` 的新虚拟环境。 6. 激活虚拟环境。在命令提示符或 PowerShell 中,使用以下命令来激活虚拟环境: ``` myenv\Scripts\activate ``` 您将看到命令提示符或 PowerShell 的左侧显示 `(myenv)`,表示您已成功激活虚拟环境。 现在,您已经成功安装并激活了 `virtualenv`,可以在虚拟环境中安装所需的软件包并进行开发工作。当您完成工作后,可以使用以下命令来退出虚拟环境: ``` deactivate ``` 这些是在 Windows 上安装和使用 `virtualenv` 的基本步骤。祝您使用愉快!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值