簡體   English   中英

帶--python標志的mkvirtualenv使用錯誤的python版本

[英]mkvirtualenv with --python flag uses wrong python version

我正在嘗試制作python 2.7環境,但是當我運行時

$ mkvirtualenv --python=python2.7 venv
$ python

Python 3.6.5 (default, Jun 17 2018, 12:13:06)
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

我安裝了python3.6。 知道這里有什么嗎?

這是帶有絕對路徑和詳細標志的輸出

 Jeff$ mkvirtualenv -v --python=/usr/bin/python2.7 neovim2
Running virtualenv with interpreter /usr/bin/python2.7
Creating /Users/Jeff/.virtualenvs/neovim2/lib/python2.7
Symlinking Python bootstrap modules
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/lib-dynload
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/config
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/os.py
  Ignoring built-in bootstrap module: posix
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/posixpath.py
  Cannot import bootstrap module: nt
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/ntpath.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/genericpath.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/fnmatch.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/locale.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/encodings
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/codecs.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/stat.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/UserDict.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/copy_reg.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/types.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/re.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/sre.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/sre_parse.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/sre_constants.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/sre_compile.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/warnings.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/linecache.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/_abcoll.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/abc.py
  Symlinking /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/_weakrefset.py
Creating /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/site-packages
Writing /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/site.py
Writing /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/orig-prefix.txt
Writing /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/no-global-site-packages.txt
Creating parent directories for /Users/Jeff/.virtualenvs/neovim2/include
Symlinking /Users/Jeff/.virtualenvs/neovim2/include/python2.7
Creating /Users/Jeff/.virtualenvs/neovim2/bin
New python executable in /Users/Jeff/.virtualenvs/neovim2/bin/python
Changed mode of /Users/Jeff/.virtualenvs/neovim2/bin/python to 0755
Symlinking /Users/Jeff/.virtualenvs/neovim2/.Python
Testing executable with /Users/Jeff/.virtualenvs/neovim2/bin/python -c "import sys;out=sys.stdout;getattr(out, "buffer", out).write(sys.prefix.encode("utf-8"))"
Got sys.prefix result: u'/Users/Jeff/.virtualenvs/neovim2'
Creating /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/distutils
Writing /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/distutils/__init__.py
Writing /Users/Jeff/.virtualenvs/neovim2/lib/python2.7/distutils/distutils.cfg
Installing setuptools, pip, wheel...
  Looking in links: /usr/local/lib/python3.6/site-packages, /usr/local/lib/python3.6/site-packages/virtualenv_support
  Collecting setuptools
    Using cached https://files.pythonhosted.org/packages/7f/e1/820d941153923aac1d49d7fc37e17b6e73bfbd2904959fffbad77900cf92/setuptools-39.2.0-py2.py3-none-any.whl
  Collecting pip
  Collecting wheel
  Installing collected packages: setuptools, pip, wheel
  Successfully installed pip-10.0.1 setuptools-39.2.0 wheel-0.31.1
...Installing setuptools, pip, wheel...done.
Writing /Users/Jeff/.virtualenvs/neovim2/bin/activate
Writing /Users/Jeff/.virtualenvs/neovim2/bin/activate.fish
Writing /Users/Jeff/.virtualenvs/neovim2/bin/activate_this.py
Writing /Users/Jeff/.virtualenvs/neovim2/bin/activate.csh
Writing /Users/Jeff/.virtualenvs/neovim2/bin/python-config
Changed mode of /Users/Jeff/.virtualenvs/neovim2/bin/python-config to 0755
virtualenvwrapper.user_scripts creating /Users/Jeff/.virtualenvs/neovim2/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/Jeff/.virtualenvs/neovim2/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/Jeff/.virtualenvs/neovim2/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/Jeff/.virtualenvs/neovim2/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/Jeff/.virtualenvs/neovim2/bin/get_env_details
 neovim2  Jeff $ python
Python 3.6.5 (default, Jun 17 2018, 12:13:06)
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

您的path變量正在拾取另一個python。

嘗試

which python

path

幫助您執行正確的python

--python不使用PATH變量。 要么使用默認的Python( /usr/bin/python指向的那個),要么必須指定可執行文件的完整路徑。 但是,通過調用,您應該會得到“可執行xxx(來自--python = xxx)不存在”,例如:

$ mkvirtualenv --python=python3 test
The executable /home/jazg/python3 (from --python=/home/jazg/python3) does not exist

但:

$ mkvirtualenv --python=/usr/bin/python3 test
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/jazg/v/test/bin/python3
Also creating executable in /home/jazg/v/test/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ python --version
Python 3.5.2

創建venv之后,您沒有執行source venv/bin/activate 試試看;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM