[英]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.