簡體   English   中英

Conda python = 2環境使用Python 3

[英]Conda python=2 environment uses Python 3

我已經安裝了Miniconda3(默認為Python 3),並使用conda創建了Python 2虛擬環境:

~$ conda create -n myenv python=2
...
~$ source activate myenv
(myenv) ~$ conda list
# packages in environment at ~/miniconda3/envs/myenv:
#
# Name                    Version                   Build  Channel
ca-certificates           2018.03.07                    0  
certifi                   2018.10.15               py27_0  
libedit                   3.1.20170329         h6b74fdf_2  
libffi                    3.2.1                hd88cf55_4  
libgcc-ng                 8.2.0                hdf63c60_1  
libstdcxx-ng              8.2.0                hdf63c60_1  
ncurses                   6.1                  he6710b0_1  
openssl                   1.1.1a               h7b6447c_0  
pip                       18.1                     py27_0  
python                    2.7.15               h9bab390_4  
readline                  7.0                  h7b6447c_5  
setuptools                40.6.2                   py27_0  
sqlite                    3.25.3               h7b6447c_0  
tk                        8.6.8                hbc83047_0  
wheel                     0.32.3                   py27_0  
zlib                      1.2.11               h7b6447c_3  

但是,如果我嘗試運行Python,它將使用Python 3:

(myenv) ~$ python
Python 3.7.1 (default, Oct 23 2018, 19:19:42) 
[GCC 7.3.0] :: Anaconda, Inc. on linux

如果我嘗試從環境中使用Python 2代碼運行腳本,也會發生同樣的事情。

(myenv) ~$ python hello2.py
File "hello2.py", line 1
    print "Hello World in Python 2"
                                ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello World in Python 2")?

我嘗試刪除並重新創建環境,但這沒什么區別。 為什么會這樣呢?

附錄

評論中要求的其他信息:

(myenv) ~$ which python
~/miniconda3/envs/myenv/bin/python

(myenv) ~$ ls ~/miniconda3/envs/myenv/bin/python -l
lrwxrwxrwx 1 user user 9 Dec  3 22:43 ~/miniconda3/envs/myenv/bin/python -> python2.7

(myenv) ~$ echo $PATH
~/miniconda3/envs/myenv/bin:~/miniconda3/bin:[rest of usual PATH]

(myenv) ~$ alias
[...]
alias python='python3'

問題是別名:

alias python='python3'

該別名將在您的Shell啟動腳本中的某處設置。 如果您使用的是.bashrc.bash_profile.profile .bash_profile 找到並刪除它。

別名擴展的優先級高於PATH查找(別名擴展首先發生)。 如果您找不到設置別名的位置,則可以在.bashrc (或.profile或兩者)中顯式取消對python的別名:

unalias python

無論如何,您都可以通過引用python令牌來避免在運行Python時使用別名:

\python hello2.py

暫無
暫無

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

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