如何重命名pvlib以导入多个版本?

时间:2019-06-18 11:08:01

标签: python anaconda pvlib

我希望能够执行以下操作,以便更轻松地比较不同版本:

import pvlib
import pvlib_old

我可以将pvlib克隆到两个单独的本地目录中,签出所需的版本并以可编辑/开发人员模式安装。但是我该怎么做才能更改其中一个的名称?

setup.py中进行此更改是否足够:

DISTNAME = 'pvlib_old'

还是有另一种方法?

2 个答案:

答案 0 :(得分:0)

pvlib的开发人员已选择该名称。而且几乎可以肯定,他们在自己的源文件中使用该名称从子模块和其库的多个文件中导入代码。您不需要通过简单的文件系统操作来更改名称。您必须处理所有源文件,在此调整所有导入,并希望不会出现意外情况,这种情况以不可预见的方式取决于程序包名称。只是不要。

在两个单独的Anaconda环境中安装这两个版本,编写一个使用API​​的脚本,然后在两个单独的控制台中运行该脚本,每个控制台分别用于一个Anaconda环境。

答案 1 :(得分:0)

您必须克隆所需的标签(“版本”),并且只有那个定义分支并避免进一步的深度(这就是您的情况)。 例如,要将版本0.6.1克隆到本地文件夹“ pvlib_0.6.1”以区分版本:

$ git clone --branch v0.6.1 --depth 1 https://github.com/pvlib/pvlib-python.git ./pvlib_0.6.1

现在,您可以通过以下方式导入该版本,包括在第一个位置的sys路径中:

$ python
>>> import sys
>>> sys.path.insert(0, './pvlib_0.6.1')   # Or full path if you store it in another place
>>> import pvlib
>>> pvlib.__version__
u'0.6.1'

您不能在与第一个提案相同的脚本中调用多个版本,但可以执行以下操作:

$ python
>>> DISTNAME = '0.6.1'
>>> import sys
>>> sys.path.insert(0, './pvlib_%s' % DISTNAME) 
>>> import pvlib
>>> pvlib.__version__
u'0.6.1'

请记住,插入路径的位置必须在位置0,如果不是,并且您已经在系统中安装了带有pip的pvlib版本,则在导入库时,可以相对于您所使用的其他版本优先加载系统可能要使用。