【问题标题】:How to get a completely clean python environment with miniconda?如何使用 miniconda 获得一个完全干净的 python 环境?
【发布时间】:2018-08-13 11:18:52
【问题描述】:

我试过了:

conda create --name Leaf python==3.6.5

如果我这样做conda list 我可以找到:

# packages in environment at /home/roychang/miniconda3/envs/Leaf:
#
# Name                    Version                   Build  Channel
ca-certificates           2018.03.07                    0  
certifi                   2018.4.16                py36_0  
libedit                   3.1.20170329         h6b74fdf_2  
libffi                    3.2.1                hd88cf55_4  
libgcc-ng                 7.2.0                hdf63c60_3  
libstdcxx-ng              7.2.0                hdf63c60_3  
ncurses                   6.1                  hf484d3e_0  
openssl                   1.0.2o               h14c3975_1  
pip                       10.0.1                   py36_0  
python                    3.6.5                hc3d631a_2  
readline                  7.0                  ha6073c6_4  
setuptools                40.0.0                   py36_0  
sqlite                    3.24.0               h84994c4_0  
tk                        8.6.7                hc745277_3  
wheel                     0.31.1                   py36_0  
xz                        5.2.4                h14c3975_4  
zlib                      1.2.11               ha838bed_2  

但是如果我尝试运行一些脚本,它使用了这个列表中没有的包(比如 kivy)。 我认为它不应该起作用,但它确实起作用了!

MiniConda 会自动从源 python 根目录获取包吗? 如何使用 MiniConda 获得一个完全干净的 Python 环境?

更新:

好像我没有解释清楚,我已经激活了那个环境,我在做conda list之后得到的就是上面显示的结果。

我在激活环境的时候可以运行这个脚本,虽然我没有在这个环境下安装kivy。在安装 MiniConda 之前,我只将 kivy 安装到 origin python。

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
from kivy.uix.spinner import Spinner
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.uix.textinput import TextInput
from kivy.graphics import Color, Ellipse, Line, Rectangle
from kivy.lang import Builder

我发现如果我尝试which python,它会显示:

(Leaf) roychang@ThinkPad-T480:~$ which python
/home/roychang/miniconda3/bin/python

在我停用环境并再次执行which python 后,我得到了相同的结果。 这是预期的吗?我认为它应该在不同的环境中使用不同的python。

conda list 默认环境下(我发现 Kivy 不在这里):

# Name                    Version                   Build  Channel
asn1crypto                0.24.0                   py36_0
ca-certificates           2018.03.07                    0
certifi                   2018.4.16                py36_0
cffi                      1.11.5           py36h9745a5d_0
chardet                   3.0.4            py36h0f667ec_1
conda                     4.5.4                    py36_0
conda-env                 2.6.0                h36134e3_1
cryptography              2.2.2            py36h14c3975_0
idna                      2.6              py36h82fb2a8_1
libedit                   3.1.20170329         h6b74fdf_2
libffi                    3.2.1                hd88cf55_4
libgcc-ng                 7.2.0                hdf63c60_3
libstdcxx-ng              7.2.0                hdf63c60_3
ncurses                   6.1                  hf484d3e_0
openssl                   1.0.2o               h20670df_0
pip                       10.0.1                   py36_0
pycosat                   0.6.3            py36h0a5515d_0
pycparser                 2.18             py36hf9f622e_1
pyopenssl                 18.0.0                   py36_0
pysocks                   1.6.8                    py36_0
python                    3.6.5                hc3d631a_2
readline                  7.0                  ha6073c6_4
requests                  2.18.4           py36he2e5f8d_1
ruamel_yaml               0.15.37          py36h14c3975_2
setuptools                39.2.0                   py36_0
six                       1.11.0           py36h372c433_1
sqlite                    3.23.1               he433501_0
tk                        8.6.7                hc745277_3
urllib3                   1.22             py36hbe7ace6_0
wheel                     0.31.1                   py36_0
xz                        5.2.4                h14c3975_4
yaml                      0.1.7                had09818_2
zlib                      1.2.11               ha838bed_2

pip list 在默认环境中(kivy 在这里找到):

Package                Version
---------------------- ---------
asn1crypto             0.24.0
bcrypt                 3.1.4
bitarray               0.8.3
boto                   2.49.0
boto3                  1.7.74
botocore               1.10.74
certifi                2018.4.16
cffi                   1.11.5
chardet                3.0.4
click                  6.7
coloredlogs            10.0
conda                  4.5.4
cryptography           2.3
Cython                 0.28.2
docutils               0.14
ffmpeg-python          0.1.15
ffmpy                  0.2.2
future                 0.16.0
humanfriendly          4.16.1
idna                   2.7
jmespath               0.9.3
Kivy                   1.10.1
Kivy-Garden            0.1.4
mysql-connector-python 8.0.11
numpy                  1.15.0
paramiko               2.4.1
Pillow                 5.2.0
pip                    10.0.1
protobuf               3.6.0
pyasn1                 0.4.4
pycosat                0.6.3
pycparser              2.18
Pygments               2.2.0
pymongo                3.7.1
PyNaCl                 1.2.1
pyOpenSSL              18.0.0
pyperclip              1.6.2
PySocks                1.6.8
python-dateutil        2.7.3
pytz                   2018.5
pyzmq                  17.1.0
requests               2.19.1
ruamel-yaml            0.15.37
s3transfer             0.1.13
scipy                  1.1.0
setuptools             40.0.0
six                    1.11.0
torchfile              0.1.0
tornado                5.1
urllib3                1.23
visdom                 0.1.8.4
websocket-client       0.48.0
wheel                  0.31.1
zmq                    0.0.0

pip list in Leaf(kivy 也可以在这里找到):

Package                Version
---------------------- ---------
asn1crypto             0.24.0
bcrypt                 3.1.4
bitarray               0.8.3
boto                   2.49.0
boto3                  1.7.74
botocore               1.10.74
certifi                2018.4.16
cffi                   1.11.5
chardet                3.0.4
click                  6.7
coloredlogs            10.0
cryptography           2.3
Cython                 0.28.2
docutils               0.14
ffmpeg-python          0.1.15
ffmpy                  0.2.2
future                 0.16.0
humanfriendly          4.16.1
idna                   2.7
jmespath               0.9.3
Kivy                   1.10.1
Kivy-Garden            0.1.4
mysql-connector-python 8.0.11
numpy                  1.15.0
paramiko               2.4.1
Pillow                 5.2.0
pip                    10.0.1
protobuf               3.6.0
pyasn1                 0.4.4
pycparser              2.18
Pygments               2.2.0
pymongo                3.7.1
PyNaCl                 1.2.1
pyOpenSSL              18.0.0
pyperclip              1.6.2
python-dateutil        2.7.3
pytz                   2018.5
pyzmq                  17.1.0
requests               2.19.1
s3transfer             0.1.13
scipy                  1.1.0
setuptools             40.0.0
six                    1.11.0
torchfile              0.1.0
tornado                5.1
umbopython             0.3
urllib3                1.23
visdom                 0.1.8.4
websocket-client       0.48.0
wheel                  0.31.1
zmq                    0.0.0

还有:

roychang@ThinkPad-T480:~$ which pip
/home/roychang/miniconda3/bin/pip
roychang@ThinkPad-T480:~$ act Leaf
(Leaf) roychang@ThinkPad-T480:~$ which pip
/home/roychang/miniconda3/envs/Leaf/bin/pip

最后更新(可能)

仍然没有解决。 但是不知道为什么python现在被分开了。

尝试在 Leaf 下卸载 Kivy,然后 Kivy 从两个 pip 列表中消失。 然后我在 Leaf 下重新安装,现在只有 Leaf 有 Kivy。

【问题讨论】:

  • 请显示使用此列表中某些包的脚本。这种行为是不正确的,不应该发生。 Python 不会从基础环境中“获取包”
  • @darthbith 我更新了一些可能有用的描述。

标签: python conda miniconda


【解决方案1】:

您已经创建了一个 conda 环境,是的,但您需要激活。使用

jalazbe@DESKTOP:~$ conda activate Leaf

只有环境名称在提示符左侧并且

(Leaf) jalazbe@DESKTOP:~$

如果你现在执行

(Leaf) jalazbe@DESKTOP:~$ conda list 

然后您将看到 conda 运行 python 所需的最小库。 要安装新库,请使用

(Leaf) jalazbe@DESKTOP:~$ conda install name-of-library
# example 
(Leaf) jalazbe@DESKTOP:~$ conda install pandas

我建议您在conda阅读更多信息

【讨论】:

  • 我已经更新了一些描述,它可能有用。
  • “请注意,在没有任何环境活动的情况下执行 conda install 将使该库可访问所有环境”-> 这不是真的,我建议您编辑答案以删除此声明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-27
相关资源
最近更新 更多