[PYTHON] Installez cvxopt sur Anaconda 64 bits

Aperçu

J'ai eu beaucoup de mal à essayer d'installer cvxopt sur la version 64 bits de Anaconda sous Windows, je vais donc résumer le travail.

La documentation de cvxopt décrit comment l'installer sous Windows (http://cvxopt.org/install/index.html#building-cvxopt-for-windows). Cependant, veuillez noter qu'il semble que la version 32 bits de Python soit supposée et qu'elle ne puisse pas être installée correctement selon le document. Cet article résume les modifications qui doivent être apportées conformément à ce document.

Environnement supposé

On suppose que ceux-ci sont déjà installés.

En outre, les travaux ultérieurs seront exécutés dans un répertoire dédié. Par exemple, si vous souhaitez le faire dans D: \ glpk, vous pouvez ouvrir l'invite de commande en procédant comme suit. 84CEE4CD-2BB7-40D7-B2EA-4A2596B8E1A2.png

Préparation de la bibliothèque dépendante

Cela peut être fait selon la Documentation.

BLAS Téléchargez fichier source BLAS. Ensuite, exécutez la commande suivante à partir de l'invite de commande.

$ tar -xvf blas.tgz
$ cd BLAS-3.5.0
$ sed 's/_LINUX/_WIN/' make.inc -i
$ make && cp blas_WIN.a ../libblas.a
$ cd ..

Cependant, le nom du répertoire sur la deuxième ligne change en fonction de la version du fichier source BLAS acquis, remplacez-le comme il convient.

LAPACK Téléchargez fichier source LAPACK. Ensuite, exécutez la commande suivante à partir de l'invite de commande.

$ tar -xvf lapack-3.5.0.tgz
$ cd lapack-3.5.0
$ cp make.inc.example make.inc
$ make lapacklib && cp liblapack.a ..
$ cd ..

Si l'on vous dit que libquadmath-0.dll n'existe pas, téléchargez-le depuis ici etMinGW / bin Placez-le dans(il semble être C: \ MinGW \ bin par défaut), puis exécutez la commande ci-dessus.

Compiler CVXOPT

De là, c'est la production. Téléchargez Fichier source CVXOPT. Ensuite, exécutez la commande suivante à partir de l'invite de commande. Le nom du fichier et le nom du dossier changent en fonction de la version, alors lisez-les comme il convient.

$ tar -xvf cvxopt-1.1.8.tar.gz
$ cd cvxopt-1.1.8/src

Ouvrez setup.py et

--Changé l'initialisation de la variable BLAS_LIB autour de la 12ème ligne en BLAS_LIB = ['blas', 'gfortran'] --Changé l'initialisation de la variable BLAS_LIB_DIR autour de la 9ème ligne en `BLAS_LIB_DIR = '.' '

Ensuite, éditez le module cygwinccompiler du paquet distutils. Si Anaconda se trouve dans c: \ Anaconda, ouvrez c: \ Anaconda \ Lib \ distutils \ cygwinccompiler.py. S'il y a une chaîne -mno-cygwin dans ce fichier, supprimez-la. (Pas dans mon environnement)

Création de libpython27.a et libmsvcr90.a

Les bibliothèques statiques Linux libpython27.a et libmsvcr90.a, qui sont requises dans le traitement ultérieur, ne sont pas préparées par défaut, elles sont donc converties à partir des bibliothèques pour Windows.

Tout d'abord, installez l'outil de conversion.

$ mingw-get install pexports

Ensuite, copiez «python27.dll» et «msvcr90.dll» dans le répertoire Anaconda (par exemple «c: \ Anaconda») dans le répertoire où se trouve setup.py de cvxopt.

Pour créer libpython27.a, exécutez la commande suivante.

$ pexports python27.dll > python27.def
$ dlltool --dllname python27.dll --def python27.def --output-lib libpython27.a

La création de libmsvcr90.a est un peu plus compliquée. Premier,

$ pexports msvcr90.dll > msvcr90.def

Exécutez et ouvrez le résultat msvcr90.def avec un éditeur de texte. Et c'est près des 304e à 314e lignes,

--Change la ligne _decode_pointer en; _decode_pointer --Change la ligne _encode_pointer en; _encode_pointer

Correct. ensuite,

dlltool --dllname msvcr90.dll --def msvcr90.def --output-lib libmsvcr90.a

Est exécuté. Copiez les fichiers libpython27.a et libmsvcr90.a terminés dans le dossier libs d'Anaconda. À ce moment-là, s'il y a python27.lib dans le répertoire libs, changez-le en python27.lib_.

Modification du code source

Une erreur se produira si le code source d'origine est utilisé, le fichier suivant doit donc être modifié.

src/C/cholmod.c Près de la 31e ligne

cholmod.c


/* defined in pyconfig.h */
#if (SIZEOF_INT < SIZEOF_LONG)
#define CHOL(name) cholmod_l_ ## name
#else
#define CHOL(name) cholmod_ ## name
#endif

À

cholmod.c


/* defined in pyconfig.h */
// #if (SIZEOF_INT < SIZEOF_LONG)
#define CHOL(name) cholmod_l_ ## name
// #else
// #define CHOL(name) cholmod_ ## name
// #endif

Corrigé en.

src/C/SuiteSparse/SuiteSparse_config/SuiteSparse_config.h Supprimez le code suivant près de la ligne 155.

SuiteSparse_config.h


#ifndef NTIMER
#ifdef _POSIX_C_SOURCE
#if    _POSIX_C_SOURCE >= 199309L
#define SUITESPARSE_TIMER_ENABLED
#endif
#endif
#endif

src/C/amd.c Près de la ligne 27,

amd.c


#if (SIZEOF_INT < SIZEOF_LONG)
#define amd_order amd_l_order
#define amd_defaults amd_l_defaults
#endif

À

amd.c


//#if (SIZEOF_INT < SIZEOF_LONG)
#define amd_order amd_l_order
#define amd_defaults amd_l_defaults
//#endif

Corrigé en.

Compiler et installer

À ce stade, vous pouvez enfin compiler avec la commande suivante.

$ python setup.py build --compiler=mingw32

Pour l'installer, créez distutils.cfg dans Lib / distutils d'Anaconda et entrez le contenu suivant.

distutils.cfg


[build]
compiler=mingw32

Puis installez-le.

$ python setup.py install

Recommended Posts

Installez cvxopt sur Anaconda 64 bits
Installez Anaconda sur Windows 10
Installez cvxpy sur Windows, Anaconda
Installer le module sur Anaconda (Mac)
Installer anaconda sur Mac → Ajouter une bibliothèque
installation de python2.7 dans un environnement Windows 32 bits
Installez Python 3.7 Anaconda sur MAC, mais Python 2
Installez PyStan sur Windows sans Anaconda
Theano sur Anaconda
Installez la version 64 bits du système d'exploitation (bate) sur Raspberry Pi
Installez CVXOPT, NumPy, SciPy sur Travis CI
Installez docker-compose sur le système d'exploitation Raspberry Pi 64 bits
Installez ubuntu sur un ordinateur portable UEFI Ultra 32 bits
Installez quand même anaconda sur un nouveau Mac
Package de notes personnelles à installer sur Anaconda
Installez OpenCV 4.0 et Python 3.7 sur Windows 10 avec Anaconda
[Python] Comment installer OpenCV sur Anaconda [Windows]
Installez la version 64 bits d'Ubuntu 20.04 LTS (serveur) sur RaspberryPi3B +
Comment installer / vérifier Graphviz sur anaconda / windows10
Installer mecab sur Marvericks
Installez Tensorflow sur Mac
Installez TensorFlow sur Ubuntu
Installer python sur WSL
Installez Faiss sur CentOS 7
Installez pyenv sur Mac
Installer pip sur Mavericks
Installez Python sur Pidora.
Installez mongodb sur termux
Installez Scrapy sur python3
Installer docker sur Fedora31
Installez numba sur CentOS 7.2
Installez Ansible sur Mac
Installez Python sur Mac
Installer Python 3 dans un environnement Mac
Installez Plone (4.3.6) sur MacOSX (10.10.3)
Installez PySide2 sur Ubuntu
Installez Python3.4 sur CentOS 6.6
Anaconda ne peut pas être installé!
Installer gensim sur Marvericks
Installez JModelica sur Ubuntu
Anaconda sur le terminal Windows
Installez numpy sur Marvericks
Installez python sur Windows
Installer enebular-agent sur le livre Chrome
Installez pycuda sur Windows10
Installez mecab-python sur CentOS
Installez Python 2.7.3 sur CentOS 5.4
Installez aws-cli sur MacPorts
Installez pygraphviz sur Windows 10
Installez Docker sur AWS
Installez Python 3.3 sur Ubuntu 12.04
Installez Chainer 1.5.0 sur Windows
Installez Python 3.4 sur Mac
Installez Caffe sur Mac
Installez Theano sur Ubuntu 12.04
Installez pyenv sur OSX
Installer mecab sur Mac
Installez awscli sur centos7
Installez angr sur Ubuntu 18.04
Installer Chainer sur CentOS 6.7