pip: Try to install mitmproxy-2.0.2 using pip on Windows 10, but Failed. Do i need to install MSVC Compiler?

  • Pip version: 9.0.1
  • Python version: 3.6
  • Operating system: Windows 10 x64

Description:

Try to install mitmproxy-2.0.2 using pip on Windows 10, do i need to install MSVC Compiler?

What I’ve run:

D:\repo\py3-webservice-http-ALG>python -m pip install mitmproxy
Collecting mitmproxy
  Using cached mitmproxy-2.0.2-py3-none-any.whl
Requirement already satisfied: certifi>=2015.11.20.1 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: pyparsing<2.3,>=2.1.3 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Collecting cssutils<1.1,>=1.0.1 (from mitmproxy)
  Using cached cssutils-1.0.2-py3-none-any.whl
Requirement already satisfied: blinker<1.5,>=1.4 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: sortedcontainers<1.6,>=1.5.4 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: pydivert<2.1,>=2.0.3; sys_platform == "win32" in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: brotlipy<0.7,>=0.5.1 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: pyOpenSSL<17.0,>=16.0 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: passlib<1.8,>=1.6.5 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Collecting urwid<1.4,>=1.3.1 (from mitmproxy)
  Using cached urwid-1.3.1.tar.gz
Requirement already satisfied: hyperframe<5,>=4.0.1 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: setuptools!=29.0.0,>=11.3 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: ruamel.yaml<0.14,>=0.13.2 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: construct<2.9,>=2.8 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: pyperclip<1.6,>=1.5.22 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: watchdog<0.9,>=0.8.3 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: click<7,>=6.2 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: requests<3,>=2.9.1 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Collecting jsbeautifier<1.7,>=1.6.3 (from mitmproxy)
Requirement already satisfied: pyasn1<0.3,>=0.1.9 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Collecting h2<3,>=2.5.1 (from mitmproxy)
  Using cached h2-2.6.2-py2.py3-none-any.whl
Requirement already satisfied: html2text<=2016.9.19,>=2016.1.8 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Collecting tornado<4.5,>=4.3 (from mitmproxy)
  Using cached tornado-4.4.3.tar.gz
Requirement already satisfied: cryptography<1.9,>=1.3 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: kaitaistruct<0.7,>=0.6 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from mitmproxy)
Requirement already satisfied: cffi>=1.0.0 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from brotlipy<0.7,>=0.5.1->mitmproxy)
Requirement already satisfied: six>=1.5.2 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from pyOpenSSL<17.0,>=16.0->mitmproxy)
Requirement already satisfied: argh>=0.24.1 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from watchdog<0.9,>=0.8.3->mitmproxy)
Requirement already satisfied: PyYAML>=3.10 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from watchdog<0.9,>=0.8.3->mitmproxy)
Requirement already satisfied: pathtools>=0.1.1 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from watchdog<0.9,>=0.8.3->mitmproxy)
Requirement already satisfied: idna<2.6,>=2.5 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from requests<3,>=2.9.1->mitmproxy)
Requirement already satisfied: urllib3<1.22,>=1.21.1 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from requests<3,>=2.9.1->mitmproxy)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from requests<3,>=2.9.1->mitmproxy)
Collecting editorconfig>=0.12.0 (from jsbeautifier<1.7,>=1.6.3->mitmproxy)
  Using cached EditorConfig-0.12.1-py3-none-any.whl
Collecting hpack<4,>=2.2 (from h2<3,>=2.5.1->mitmproxy)
  Using cached hpack-3.0.0-py2.py3-none-any.whl
Requirement already satisfied: asn1crypto>=0.21.0 in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from cryptography<1.9,>=1.3->mitmproxy)
Requirement already satisfied: packaging in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from cryptography<1.9,>=1.3->mitmproxy)
Requirement already satisfied: pycparser in c:\users\陈志祥\appdata\local\programs\python\python36\lib\site-packages (from cffi>=1.0.0->brotlipy<0.7,>=0.5.1->mitmproxy)
Building wheels for collected packages: urwid, tornado
  Running setup.py bdist_wheel for urwid ... error
  Failed building wheel for urwid
  Running setup.py clean for urwid
  Running setup.py bdist_wheel for tornado ... error
  Failed building wheel for tornado
  Running setup.py clean for tornado
Failed to build urwid tornado
Installing collected packages: cssutils, urwid, editorconfig, jsbeautifier, hpack, h2, tornado, mitmproxy
  Running setup.py install for urwid ... error
Exception:
Traceback (most recent call last):
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\compat\__init__.py", line 73, in console_to_str
    return s.decode(sys.__stdout__.encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 17: invalid start byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\commands\install.py", line 342, in run
    prefix=options.prefix_path,
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\req\req_set.py", line 784, in install
    **kwargs
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\req\req_install.py", line 878, in install
    spinner=spinner,
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\utils\__init__.py", line 676, in call_subprocess
    line = console_to_str(proc.stdout.readline())
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str
    return s.decode('utf_8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 17: invalid start byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\commands\install.py", line 385, in run
    requirement_set.cleanup_files()
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\req\req_set.py", line 729, in cleanup_files
    req.remove_temporary_source()
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\req\req_install.py", line 977, in remove_temporary_source
    rmtree(self.source_dir)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\_vendor\retrying.py", line 49, in wrapped_f
    return Retrying(*dargs, **dkw).call(f, *args, **kw)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\_vendor\retrying.py", line 212, in call
    raise attempt.get()
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\_vendor\retrying.py", line 247, in get
    six.reraise(self.value[0], self.value[1], self.value[2])
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\_vendor\six.py", line 686, in reraise
    raise value
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\_vendor\retrying.py", line 200, in call
    attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\utils\__init__.py", line 102, in rmtree
    onerror=rmtree_errorhandler)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\shutil.py", line 494, in rmtree
    return _rmtree_unsafe(path, onerror)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\shutil.py", line 393, in _rmtree_unsafe
    onerror(os.rmdir, path, sys.exc_info())
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\utils\__init__.py", line 114, in rmtree_errorhandler
    func(path)
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\陈志祥\\AppData\\Local\\Temp\\pip-build-euib5x4_\\urwid'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\commands\install.py", line 385, in run
    requirement_set.cleanup_files()
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\utils\build.py", line 38, in __exit__
    self.cleanup()
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\utils\build.py", line 42, in cleanup
    rmtree(self.name)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\_vendor\retrying.py", line 49, in wrapped_f
    return Retrying(*dargs, **dkw).call(f, *args, **kw)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\_vendor\retrying.py", line 212, in call
    raise attempt.get()
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\_vendor\retrying.py", line 247, in get
    six.reraise(self.value[0], self.value[1], self.value[2])
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\_vendor\six.py", line 686, in reraise
    raise value
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\_vendor\retrying.py", line 200, in call
    attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\utils\__init__.py", line 102, in rmtree
    onerror=rmtree_errorhandler)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\shutil.py", line 494, in rmtree
    return _rmtree_unsafe(path, onerror)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\shutil.py", line 384, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\shutil.py", line 393, in _rmtree_unsafe
    onerror(os.rmdir, path, sys.exc_info())
  File "C:\Users\陈志祥\AppData\Local\Programs\Python\Python36\lib\site-packages\pip\utils\__init__.py", line 114, in rmtree_errorhandler
    func(path)
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\陈志祥\\AppData\\Local\\Temp\\pip-build-euib5x4_\\tornado'

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 16 (9 by maintainers)

Most upvoted comments

I faced this issue and it was solved with

python -m pip install --upgrade pip

That installed pip 10

I suspect that the problem is that your temporary directory includes your username, which is non-ASCII, and I suspect you’re hitting an issue where the ANSI and OEM codepages set for Windows differ, which causes the sort of encoding issues you’re seeing (and is what we’ve hopefully fixed in the next version of pip). A possible workaround would be to set the TEMP environment variable to a different value.

So one possible approach would be either to set TEMP to something like C:\Temp, which will let pip work at the cost of having to change your system configuration, or if you’re OK with using an unreleased version of pip, getting the development version installed by doing:

mkdir C:\Temp
set TEMP=C:\Temp
python -m pip install git+https://github.com/pypa/pip.git
python -m pip --version

(The last command is to check that you now have the dev version of pip installed).

Good news is, that pretty much confirms that it’s an encoding issue (which is fixed in the latest version of pip). The bad news is that you can’t use your current pip to upgrade itself because the current version has a bug 😦

I’m not sure what the best option is for a clean upgrade for you here. You could install by cloning the git repo and then using setup.py install but that’s messy. I’ll have a think and see if I can suggest an upgrade strategy for you.