Python pip 和 conda 包管理器
Python pip and conda package manager
是的,我在 python 世界问同样的老问题。关于包管理器
pip
和 conda
.
Pip
与 python
软件包完美配合,但在 python 具有 c 扩展名的软件包(如 pandas, matplotlib
等)下会卡住。这就是 conda
的用武之地,以节省在设置环境中打破头脑的时间。
但是,我偶然发现了一些环境,其中 conda 通道没有 flask-sqlalchemy, flask-httpauth
等包。因此您必须为此使用 pip。用两个不同的包管理器管理你的环境对我来说很奇怪,可能是不可取的。
使用此类包管理器管理 python 依赖项的最佳实践是什么。需要高手指教,感觉中的差距。
任何 ideas/help 将不胜感激。
我也用Pycharm,只能识别conda包,不能识别pip包。那是另一种痛苦。所以我不得不回到 vim
(这很好 - 我喜欢它)但是调试很困难或者不像 pycharm 那样容易,比如 IDE。
P.S。我使用 Linux/Mac 进行开发。
这是一个不错的工作流程示例(来自 this blog):
- Create a project folder in the
~/repos/
directory on my computer.
- Create an environment.yml file in the directory. Typically the environment name will be the same as the folder name. At minimum, it
will specify the version of Python I want to use; it will often
include anaconda as a dependency.
- Create the conda environment with
$ conda env create
.
- Activate the conda environment with
$ source activate ENV_NAME
.
- Create a .env file containing the line
source activate ENV_NAME
. Because I have autoenv installed, this file will be run every time I
navigate to the project folder in the Terminal. Therefore, my conda
environment will be activated as soon as I navigate to the folder.
- Run
$ git init
to make the folder a Git repository. I then run $ git add environment.yml && git commit -m 'initial commit'
to add the
YAML file to the repository.
- If I want to push the repository to Github, I use
$ git create
using Github's hub commands. I then push the master branch with $ git push -u origin master
.
还不错,但不完美。一些缺点是:
- 直接依赖与依赖的依赖一起列出。
- 正确删除包很复杂。
- 当有从其他来源安装的包时,它不起作用。
然而,这是一个好的开始,根据我的经验,大多数团队都不会费心去发明比这个更好的解决方案。
P.S.: 在过去的一年中,PyCharm 显着改善了对 conda 的支持,截至 2017 年 4 月,它可以正确识别 conda 和 pip 包。
是的,我在 python 世界问同样的老问题。关于包管理器
pip
和 conda
.
Pip
与 python
软件包完美配合,但在 python 具有 c 扩展名的软件包(如 pandas, matplotlib
等)下会卡住。这就是 conda
的用武之地,以节省在设置环境中打破头脑的时间。
但是,我偶然发现了一些环境,其中 conda 通道没有 flask-sqlalchemy, flask-httpauth
等包。因此您必须为此使用 pip。用两个不同的包管理器管理你的环境对我来说很奇怪,可能是不可取的。
使用此类包管理器管理 python 依赖项的最佳实践是什么。需要高手指教,感觉中的差距。
任何 ideas/help 将不胜感激。
我也用Pycharm,只能识别conda包,不能识别pip包。那是另一种痛苦。所以我不得不回到 vim
(这很好 - 我喜欢它)但是调试很困难或者不像 pycharm 那样容易,比如 IDE。
P.S。我使用 Linux/Mac 进行开发。
这是一个不错的工作流程示例(来自 this blog):
- Create a project folder in the
~/repos/
directory on my computer.- Create an environment.yml file in the directory. Typically the environment name will be the same as the folder name. At minimum, it will specify the version of Python I want to use; it will often include anaconda as a dependency.
- Create the conda environment with
$ conda env create
.- Activate the conda environment with
$ source activate ENV_NAME
.- Create a .env file containing the line
source activate ENV_NAME
. Because I have autoenv installed, this file will be run every time I navigate to the project folder in the Terminal. Therefore, my conda environment will be activated as soon as I navigate to the folder.- Run
$ git init
to make the folder a Git repository. I then run$ git add environment.yml && git commit -m 'initial commit'
to add the YAML file to the repository.- If I want to push the repository to Github, I use
$ git create
using Github's hub commands. I then push the master branch with$ git push -u origin master
.
还不错,但不完美。一些缺点是:
- 直接依赖与依赖的依赖一起列出。
- 正确删除包很复杂。
- 当有从其他来源安装的包时,它不起作用。
然而,这是一个好的开始,根据我的经验,大多数团队都不会费心去发明比这个更好的解决方案。
P.S.: 在过去的一年中,PyCharm 显着改善了对 conda 的支持,截至 2017 年 4 月,它可以正确识别 conda 和 pip 包。