0

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

import pvlib
import pvlib_old

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

在以下方面进行此更改是否足够setup.py

DISTNAME = 'pvlib_old'

[编辑:我在某个时候尝试过,但它不起作用。]

还是有其他方法?

4

2 回答 2

0

的开发者pvlib选择了这个名字。他们几乎肯定会在自己的源文件中使用该名称来从其库的子模块和多个文件中导入代码。不是你通过简单的文件系统操作来更改名称的。您必须处理所有源文件,在那里调整所有导入,并希望不会有一些意外的极端情况以无法预料的方式依赖于包名称。只是不要。

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

于 2019-06-20T13:39:09.503 回答
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 版本,当您导入库时,系统可能会优先加载您可能想要的其他版本利用。

于 2019-09-06T11:58:45.020 回答