问题描述
我正在使用带有Linux的桌面(特别是Pop_OS!20.04,类似于ubuntu)。
我需要运行ASE,这是用于原子模拟的python软件包。 可以通过几种方式(apt,pip,conda)进行安装。 为了我的目的,我需要使用conda安装它(与社区尽可能保持一致)。由于我不喜欢将conda集成到bash中,因此我决定将pyenv用作虚拟环境管理器。
因此,在另一个stackoverflow问题上回答1,最好不要通过pyenv安装conda。 因此,我以简单的想法首先尝试了这种情况(案例A):
- 我用pyenv创建虚拟环境;
- 我使用正确的script和pyenv安装了conda
- 在环境中并使用conda安装ASE
$ pyenv virtualenv 3.9.0 caseA
(caseA) $ which python
/home/fex/.pyenv/shims/python
(caseA) $ python -V
Python 3.9.0
(caseA) $ bash Anaconda3-2020.07-Linux-x86_64.sh
# I did not include anaconda in the bashrc
# To activate conda eval "$(/home/user/anaconda3/bin/conda shell.YOUR_SHELL_NAME hook)" or "source <path to conda>/bin/activate"
# conda init
(baseA) $ source /home/fex/anaconda3/bin/activate
(base) (caseA) $
这种双重环境非常有趣,我认为这不应该发生。
但是我无法使用conda安装ASE。所以我给了conda init
:
(base)(caseA) $ conda init
(base)(caseA) $ source ~/.bashrc
(base) $ conda install -c conda-forge/label/cf202003 ase
(base) $ ase test
...
fio/oi.py: TypeError: Object does not appear to be a file-like object
========== Summary ==========
Number of tests 363
Passes: 260
Failures: 0
Errors: 1
Skipped: 102
=============================
Test suite failed!
Time elapsed: 42.3 s
据我所知,这种方法有效,但是绕过pyenv,最终我只使用了conda环境,而这并不是我最初想要的。
案例B: 这不是至关重要的。创建环境后,我尝试使用pyenv安装conda,但无法在pyenv环境中使用它。
案例C: 我可以通过以下方式解决问题:
- 使用pyenv安装了conda
- 创建一个依赖conda而非python特定版本的pyenv虚拟环境
$ pyenv virtualenv miniconda3.X.Y fooenv
- 这对我有用,但是我正在使用conda中包含的python。这不是问题,但是由于我没有完全掌握这里的全部技术知识,所以我想分享我的疑问。
我在这里写的另一个原因是,ASE是DFT(密度泛函理论)领域中非常流行的标准,而DFT迄今为止是化学/物理领域中的most cited topic之一。然而,手册和指南的编写跟不上python的快速发展。
其他信息
$ pyenv versions
system
2.7.18
* 3.9.0 (set by PYENV_VERSION environment variable)
3.9.0/envs/caseA
3.9.0/envs/caseB
3.9.0/envs/coppie
3.9.0/envs/foo
caseA
caseB
ccase
coppie
foo
miniconda3-latest
miniconda3-latest/envs/ccase # I created this with pyenv virtualenv miniconda3-latest ccase ccase stands for case C
$ pyenv -v
pyenv 1.2.21
$ which python
/home/fex/.pyenv/shims/python
$ python -V
Python 3.9.0
pyenv activate ccase
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
(ccase) $ pip install pytest
(ccase) $ ase test
[...]
====================================================================== 1290 passed,233 skipped,1 xfailed,5 warnings in 193.06s (0:03:13)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)