繁体   English   中英

当Python次要版本更改时,Anaconda如何处理pip安装的软件包和其他自定义?

[英]How does Anaconda handle pip-installed packages and other customisation when Python minor version changes?

假设我有一个Anaconda Python安装,说它是Python 3.7,我:

  • pip安装几个软件包,这些软件包最终在~/anaconda3/lib/python3.7/site-packages

  • 将自定义.pth文件添加到站点包中,以使模块存储在Python导入路径中包含的其他位置。

稍后发布Python 3.8。 我输入conda install python==3.8 Conda会卸载其跟踪的所有软件包的所有Python 3.7版本,然后安装Python 3.8版本,届时它们将位于其存储库中。

我点子安装的软件包会怎样? 它们只是留在~/anaconda3/lib/python3.7/site-packages ,而Python 3.8不会在其中看到它们(它在~/anaconda3/lib/python3.8/site-packages寻找)? 我的.pth文件会怎样? 它是否同样会留在那儿不会起作用?

我分发了Python软件,该软件在安装过程中通过将这样的.pth文件添加到用于安装它的Python解释器的站点包中,从而将其模块目录(存储在系统中的其他位置)添加到Python搜索路径中。 它还取决于conda存储库中没有的一些软件包,我们的文档建议用户通过pip安装这些软件包。 我担心将来的Python更新可能对该软件的用户(几乎专门使用Anaconda)无害,可能会中断我们软件的安装。

尽管该软件已经使用了多年,但它在Python 2.7上使用了很长时间,因此我还没有看到这种情况下会发生什么。 当前版本的anaconda似乎也有bug或无法解决的依赖关系,因此如果我尝试 Python 降级到其他版本,它只会挂起,因此我无法进行测试以查看会发生什么。

复制和粘贴从一个答案我在这里


稍后发布Python 3.8。 我输入conda install python == 3.8。 Conda会卸载其跟踪的所有软件包的所有Python 3.7版本,然后安装Python 3.8版本,届时它们将位于其存储库中。

您确定它会卸载3.7版本吗? 但无论如何:

我点子安装的软件包会怎样? 他们只是留在里面吗

〜/ anaconda3 / lib / python3.7 / site-packages,Python 3.8在哪里看不到它们(它在〜/ anaconda3 / lib / python3.8 / site-packages中寻找)? 我的.pth文件会怎样? 它是否同样会留在那儿不会起作用?

是的,它们将在3.7中保留或删除。 通常,3.7软件包不一定与3.8兼容,因此您不希望它们移动。

您将希望人们像使用非基于conda的系统一样,用3.8重复utsallall过程。

我分发Python软件,该软件在安装过程中添加了其模块

目录(存储在系统中其他位置)到Python搜索路径,方法是将一个.pth文件添加到用于安装它的Python解释器的站点包中。

为什么不让它们使用常规方式安装软件包? 为此,如果您想完全支持conda,也可以提供conda软件包。

它还取决于conda存储库中没有的一些软件包,我们的文档建议用户通过pip安装这些软件包。

这有点麻烦,但是您可以将这些软件包提供给conda-forge,然后您的用户可以进行全conda安装,这将使所有这些工作变得更加容易。

我担心将来的Python更新可能对该软件的用户(几乎专门使用Anaconda)无害,可能会中断我们软件的安装。

我认为确实存在风险-但是如果您的用户主要在使用Anaconda,那么向他们提供他们需要的所有conda功能(包括您自己的)将使此操作变得更加容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM