Anaconda安装遗传和进化算法库函数安装——geatpy

博客详细记录了在Python3.9环境下安装geatpy遇到的问题及解决办法,包括geatpy版本不兼容问题,创建Python3.6环境,并在新环境中成功安装geatpy的步骤,以及使用PyCharm配置环境和测试代码的过程。同时介绍了Anaconda环境下安装库的注意事项和方法。
摘要由CSDN通过智能技术生成

我最初下载的anaconda是python3.9版本,见下图:

所以在使用以下命令

pip install geatpy

后,一直报错,

后来终于下载成功了geatpy2.0.0版本后,在程序中调用geatpy时又报错

分析原因,可能是出现函数awGA出现名字重复的情况,然后产生了互相调用。 

根本原因是安装的geatpy2.0.0版本(截止至19.7.29)。在此版本下import geatpy会报错:

from awGA import awGA
ImportError:can not import name 'awGA' from 'awGA' (unknown location) 

 所以我就查阅了很多博客和资料,从geatpy官网:Geatpy  了解到安装geatpy的一般有三种:

 我们此刻发现Geatpy仅支持Windows 32和64位的Python3.5, 3.6,3.7和3.8;Linux 64位的Python3.5, 3.6,3.7和3.8以及Mac OS 系统64位的Python3.5, 3.6,3.7和3.8。而我前面使用的anaconda3使用的是python3.9环境,所以这就是为什么一直只能下载geatpy2.0.0的原因(至于为什么是2.0.0我也不懂),所以我们只需要先将前面下载的2.0.0版本卸载掉,然后在anaconda3中再建立一个新的python3环境即可。

首先卸载geatpy,换一个版本安装:

#卸载geatpy
pip uninstall geatpy

 然后使用anaconda3配置python3.6环境安装geatpy

1.配置python3.6环境

因为我的pych使用的python3.7,但是pyltp只能是python3.6,所以我们先来配置环境。其实非常简单,相信大家应该都已经安装好了anaconda,我们只要再anaconda上面新配置一个环境就好了,不用看网上一些乱七八糟的教程。 

输入如下,建立一个新的环境: 

conda create --name python36 python=3.6

 这里,输入y,继续。

这样一个python3.6的环境就配好了,我们来激活这个环境,输入如下: 

activate python36

 python3.6安装成功,接下来我们开始安装geatpy

安装geatpy

我们在刚刚激活的python36环境里面,通过cd命令找到下载的位置所在的文件夹,找到所在的文件夹就行,分别输入:

activate python36

到达这个文件夹之后,我们就可以安装了,只需要输入一句话就可以了: 

​pip install geatpy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

 一般直接下载太慢,这里有一个小技巧,换一个国内的豆瓣源速度会快很多:

pip install 包名 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

这里自动匹配安装了geatpy1.1.5(至于为什么是此版本可能与python3.6版本有关,但不影响最后结果)。

使用pycharm进行geatpy测验

首先一定要选择我们刚刚建好的环境python36,否则环境就是anaconda3自带的python3.9,调用geatpy就会报错,设置方法如下:

我们点击圈中的“设置”那里,如下所示,点击“Add” 

在这个界面,点击“Existing Enviroment”,点击OK 

现在我们回到刚刚的界面,已经安装成功了,接下来我们来测试一下! 

 测试一下geatpy

输入如下代码:

# 主函数文件:main.py
import numpy as np
import geatpy as ga

# 导入目标函数
AIM_M = __import__('aimfuc')

# 变量设置
x1 = [-3, 12.1]  # 自变量1的范围
x2 = [4.1, 5.8]  # 自变量2的范围
b1 = [1, 1]  # 自变量1是否包含下界
b2 = [1, 1]  # 自变量2是否包含上界
codes = [0, 0]  # 自变量的编码方式,0表示采用标准二进制编码
precisions = [4, 4]  # 在二进制/格雷码编码中代表自变量的编码精度,当控制变量是二进制/格雷编码时,该参数可控制编码的精度
scales = [0, 0]  # 是否采用对数刻度
ranges = np.vstack([x1, x2]).T  # 生成自变量的范围矩阵
borders = np.vstack([b1, b2]).T  # 生成自变量的边界矩阵
# 生成区域描述器
FieldD = ga.crtfld(ranges, borders, precisions, codes, scales)

# 调用编程模板
[pop_trace, var_trace, times] = ga.sga_new_code_templet(
    AIM_M, 'aimfuc', None, None, FieldD, problem='R', maxormin=-1,
    MAXGEN=1000, NIND=100, SUBPOP=1, GGAP=0.8, selectStyle='sus',
    recombinStyle='xovdp', recopt=None, pm=None, distribute=True,
    drawing=0)

# 最优的目标函数值为:316.946
# 最优的控制变量值为:
# 12.1
# 5.8
# 有效进化代数:1000
# 最优的一代是第 31 代
# 时间已过 1.681 秒
# 目标函数文件:aimfuc.py
# 在使用时,请将文件名修改为 aimfuc.py,和main.py放在同一目录下
import numpy as np

def aimfuc(Phen, LegV):
    # 目标函数
    x = Phen[:, [0]]
    y = Phen[:, [1]]
    f = np.sin(x + y) + (x + y) ** 2 - 1.5 * x + 2.5 * y + 1
    return [f, LegV]

运行成功,结果如下:

 另外,对于Anaconda库的安装方式,我这里需要说明一下。

对于anaconda3自带的python3.9环境,如果需要安装库的话,需要打开“cmd”窗口(快捷键win+R,然后输入“cmd”),将当前目录定位到anaconda的目录,记住要定位到其中的Scripts目录中,我的目录是“D:\ProgramData\anaconda3\Scripts”,所以我定位到了这个文件位置(D:\ProgramData\anaconda3\Scripts)。如下图:   

  而对于我们前面在anaconda3中新建的python36(只是名字叫python36,实际为python3.6),如果要在此环境中下载库(包),我习惯用的主要有如下两种方法:

1.将当前目录定位到anaconda3中新建的环境python36的目录,记住要定位到其中的Scripts目录中,我的目录是“D:\ProgramData\anaconda3\envs\python36\Scripts”,所以我定位到了这个文件位置(D:\ProgramData\anaconda3\envs\python36\Scripts)

然后输入命令下载即可:

pip install 包名 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

我们看到 在python interpreter中已经下载到了scikit-opt,在此环境下下载成功。

 2.打开anadconda prompt,输入:

activate python36

激活python36环境。

 然后输入安装命令:

pip install 包名 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

 我们看到也已经安装成功。

 另外,如何使用anaconda安装或更新自己想要的库也有一些注意事项,可见此文:

https://blog.csdn.net/xiexu911/article/details/80282440

最后,写这篇博客太辛苦了,刚才明明已经写完了,复制一个东西撤回后消失了一大半内容,导致我又写了一个多小时,太不容易了,呜呜呜。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值