J'ai pensé à gratter facilement avec python et j'ai décidé d'utiliser scrapy, mais lequel dois-je utiliser pour configurer python en premier lieu? J'étais inquiet à ce sujet et le scrapy ne fonctionnait pas correctement, donc je suis resté coincé dans certains cas, alors j'écrirai un mémo sur la solution.
Il existe divers outils dans le package et l'environnement python, et je me demande lequel utiliser. J'ai choisi l'environnement suivant parce que je veux définir l'environnement simplement avec le moins d'outils possible.
pyenv + anaconda
Utilisez pyenv pour le contrôle de version python et conda, un outil anaconda, pour la gestion des packages et de l'environnement virtuel. Les articles suivants ont été très utiles pour cette sélection.
Création d'un environnement python pour ceux qui souhaitent devenir des data scientists 2016
Actuellement, je n'utilise Mac que pour le développement, donc cet article est uniquement pour Mac (OSX).
Mac est livré avec python 2.x en standard, mais il semble que la mise à jour conviendra, alors laissez le système python tel quel et installez le python que vous souhaitez utiliser séparément avec pyenv. De plus, il est peu probable que vous utilisiez rarement les différentes bibliothèques de python, il est donc pratique d'utiliser anaconda, qui est un paquet de bibliothèques principales. Si l'anaconda est trop gros, il y a aussi une miniconda minimale.
Il est dit que l'installation d'anaconda directement sur Mac sera en conflit avec homebrew (voir l'article ci-dessus), il est donc préférable d'utiliser pyenv, et divers packages autres que anaconda peuvent être facilement utilisés.
Tout d'abord, utilisez homebrew pour installer pyenv.
$ brew install pyenv
$ echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="${PYENV_ROOT}/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
Les packages qui peuvent être installés avec pyenv
$ pyenv install -l
Vous pouvez le voir sur. Pour anaconda, pour le moment, les dernières versions de python2 et python3 sont
anaconda2-4.3.0
anaconda3-4.3.0
Il est devenu. Ici, installez anaconda3-4.3.0.
$ pyenv install anaconda3-4.3.0
L'installation prend beaucoup de temps, alors prenez une pause-café.
La commande ci-dessus seule ne vous permettra pas d'utiliser le python installé (anaconda). Pour pouvoir l'utiliser à l'échelle du système
$ pyenv global anaconda3-4.3.0
ça ira. Vous pouvez vérifier les paramètres actuels avec la commande suivante.
$ pyenv version
anaconda3-4.3.0 (set by /Users/tetsuo/.pyenv/version)
Vous pouvez également voir les packages python (gérés par pyenv) téléchargés sur votre Mac.
$ pyenv versions
system
3.6.0
* anaconda3-4.3.0 (set by /Users/tetsuo/.pyenv/version)
ça ira. Si vous démarrez python dans cet état,
$ python
Python 3.6.0 |Anaconda 4.3.0 (x86_64)| (default, Dec 23 2016, 13:19:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Et vous pouvez voir que python3 du package Anaconda fonctionne.
Vous pouvez afficher la liste des bibliothèques installées par Anaconda avec la commande suivante.
$ conda list
# packages in environment at /Users/tetsuo/.pyenv/versions/anaconda3-4.3.0:
#
_license 1.1 py36_1
alabaster 0.7.9 py36_0
anaconda 4.3.0 np111py36_0
anaconda-client 1.6.0 py36_0
anaconda-navigator 1.4.3 py36_0
appnope 0.1.0 py36_0
|
Malheureusement, scrapy n'est pas installé, alors installez-le séparément. Installation grasse Normalement, pip est utilisé, mais comme je veux le gérer avec conda, installez-le avec conda au lieu de pip. Tout d'abord, vérifiez si conda a de la tremblante.
$ conda search scrapy
Fetching package metadata .........
scrapy 0.16.4 py26_0 defaults
0.16.4 py27_0 defaults
0.24.4 py27_0 defaults
1.0.1 py27_0 defaults
1.0.3 py27_0 defaults
1.1.1 py27_0 defaults
1.1.1 py34_0 defaults
1.1.1 py35_0 defaults
1.1.1 py36_0 defaults
Comme scrapy est également enregistré, vous pouvez l'installer avec conda. Cependant, lorsque vous installez la dernière version de scrapy, la dernière version de la bibliothèque torsadée utilisée en interne sera également installée. Mais un bug tremblant? Donc, si vous utilisez twisted après la version 16.6, lors du scraping
TypeError: 'float' object is not iterable
Et arrêtez.
Référence TypeError: l'objet 'float' n'est pas itérable (sur Twisted dev + Scrapy dev)
Par conséquent, lorsque vous installez scrapy, vous spécifiez également la version torsadée (vous pouvez également savoir quelle version torsadée vous pouvez utiliser avec
conda search twisted` ``).
$ conda install scrapy twisted=16.6.0
Vous avez maintenant également installé scrapy.
$ scrapy version
Scrapy 1.1.1
Maintenant vous avez un environnement qui utilise python et scrapy avec juste pyenv et anaconda. Lorsque j'utilise python de temps en temps, je ne me souviens pas comment utiliser de nombreux outils et il faut du temps pour me souvenir de l'environnement. En outre, les paramètres globaux du système sont nécessaires pour utiliser les fonctions de support de programmes tels que linter dans l'éditeur. J'ai donc recherché une méthode qui puisse être facilement construite avec le moins d'outils possible et créé un environnement capable de tout gérer, de la gestion de version de python aux environnements virtuels avec seulement deux outils, pyenv et conda. Désormais, la fonction support de l'éditeur fonctionne sans aucun problème.
Cependant, lors de l'utilisation de l'environnement virtuel de conda, il y a un problème que la commande activate entre en conflit avec pyenv et ne fonctionne pas. Ceci est également facile à résoudre, donc je suis satisfait de cet environnement pour le moment. Référence 3 types de solutions de contournement pour activer le problème de collision lorsque pyenv et anaconda coexistent