我有一个关于conda和pip虚拟环境的两个部分的问题。我在皮普和康达有什么区别?和Conda是否取代了对虚拟化的需求?的答案上找到了很好的信息,但仍然有一些不清楚的地方。
我有一个给定的python项目(比如PR),我需要在安装anaconda的linux服务器(比如S)上安装和进一步开发。现在,PR的使用/安装说明告诉我使用python创建虚拟环境,使用pip安装所有包。那是,
python3 -m venv PR
pip install --editable . (末尾包含的点)
根据"pip安装-可编辑./“vs "python setup.py develop”,后者读取文件setup.py (包括在PR中),其中包含一个函数setup(...)和选项install_requires,列出所有所需的包并自动安装它们。我已经在我自己的电脑上测试过这个(它没有conda),而且工作正常。至少没有错误信息。
现在我需要在S上进一步开发PR。我的问题1:我可以使用conda而不是pip来创建和更新虚拟环境吗?如果是,那么替代pip install --editable .的conda命令是什么?我很肯定,我以后还需要安装其他软件包。我担心conda/pip之间的冲突。
在S上,我有Spyder和其他蟒蛇IDEs。我从来没有使用过Spyder,但是我非常熟悉PyCharm (Windows)和VS Code (Linux),所以我假设用Spyder进行调试将与这些类似。我的问题第2部分(与第1部分有关):如果我必须使用pip来安装软件包,Spyder会看到这些吗?或者只能看到conda安装的软件包?
(Edit/update):感谢卡洛斯的评论。我继续问:
我使用conda创建并激活了虚拟环境(VE)。
conda create PR_venv
conda activate PR_venv已安装pip
conda install pip(这个升级的pip也安装了其他几个软件包,包括更新版本的python)。已安装PR及其所需的带有pip的软件包
pip install -e .现在,如果我从终端以交互方式运行这个活动VE中的PR包,一切都很好。我也想在spyder内部做同样的事情,让IDE的调试能力掌握在我的手中。
启动spyder时,打开要运行的python文件,单击" run“按钮,它会在import语句中崩溃。Spyder无法看到已安装的软件包。它只能看到本地的软件包PR,但没有一个软件包安装为这个VE的pip。
我不知道这里的正确问题是什么;我搞不懂conda VEs与spyder/jupyter/ipython有什么关系?我在conda文档中找不到这方面的信息。我从间谍的文件里找不到任何关于我们的资料。我是否必须以某种方式重新安装软件包(如何安装?)内部间谍?这似乎毫无意义,因为软件包已经安装好了。
(编辑/更新2):关于https://docs.spyder-ide.org/current/installation.html的信息让我更加困惑: Spyder既是一个独立的程序,也是一个python包。那么,我必须重新安装间谍在VE(?!)使用
conda activate PR_venv
conda install spyder如有任何澄清,将不胜感激。我一直认为IDEs是独立的项目,仅此而已。这个间谍装置把我的大脑扭曲成椒盐卷饼。
发布于 2022-06-09 08:07:43
第1部分:是的,我可以使用conda创建VE和pip来安装软件包
conda create PR_venv
conda activate PR_venv
conda install pip
pip install --editable .
conda list最后一行显示哪些包由conda安装,哪些包由pip安装(如pypi所示)。
Part 2:spyder默认情况下无法看到包。需要做两件事:
conda install spyder-kernels打开Spyder和Tools > Preferences > Python解释器>使用下面的解释器> VE python命令的完整路径
重启间谍。现在它可以看到包裹了。
(编辑:)这个链接很好:https://github.com/spyder-ide/spyder/wiki/Working-with-packages-and-environments-in-Spyder
发布于 2022-06-05 18:59:08
(这里是间谍维护者)关于你的问题:
我可以使用conda而不是pip来创建和更新虚拟环境吗?
可以,停那儿吧。请参阅这里了解conda为管理环境提供的功能。
如果是,那么替代
pip install --editable .的conda命令是什么?
Conda不能很好地替代该命令。但是,您仍然可以在conda环境中使用它,只要您在运行conda之前安装了所有与conda的包依赖关系。这将避免混合conda和pip包,这通常会导致非常糟糕的结果。
如果我不得不用pip安装软件包,Spyder看到了那些吗?或者只能看到conda安装的软件包?
Spyder可以在没有问题的情况下使用pip和conda软件包。只要确保不要混合它们(正如我上面所说的),你就会没事的。此外,请阅读我们的文件以了解如何将本地Spyder实例连接到远程服务器。
https://stackoverflow.com/questions/72432693
复制相似问题