Télécharger une librairie python via pip derrière un proxy. [Résolu]

- - Dernière réponse : [Dal]
Messages postés
5250
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 octobre 2019
- 29 janv. 2019 à 12:33
Bonjour,

J'ai un sacré problème pour télécharger une librairie python, cela fait deux jours que je me casse la tête dessus et je viens de trouver la cause de mon problème, mais je ne suis pas plus avancé qu'avant !

Petit contexte : Je suis sous windows 10, avec une connexion proxy (dont je connais l'URL du serveur et le numéro de port), et j'ai téléchargé Python 3.7.2 récemment, toutefois j'ai besoin de certaines bibliothèques afin de pouvoir coder de façon correcte. Pour cela je voudrais utiliser la commande pip. J'ai donc installé pip avec succès sur mon ordinateur (j'ai bien dans Program Files/Python3.7.2/Scripts plusieurs dossiers "pip", "pip3" chacun d'environ 90 Ko), et je tape, pour télécharger par exemple la librairie "matplotlib" :

pip3 install matplotlib --proxy HTTPS_PROXY


Où HTTPS_PROXY est une variable d'environnement définie comme suit :

https://[Username:passwd@]proxy.server:proxyPort
comme indiqué dans l'aide de la commande.

J'obtenais alors l'erreur suivante :

  File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\cli\base_command.py", line 143, in main
status = self.run(options, args)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\commands\install.py", line 318, in run
resolver.resolve(requirement_set)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\resolve.py", line 102, in resolve
self._resolve_one(requirement_set, req)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\resolve.py", line 256, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\resolve.py", line 209, in _get_abstract_dist_for
self.require_hashes
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\operations\prepare.py", line 218, in prepare_linked_requirement
req.populate_link(finder, upgrade_allowed, require_hashes)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\req\req_install.py", line 164, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\index.py", line 572, in find_requirement
all_candidates = self.find_all_candidates(req.name)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\index.py", line 530, in find_all_candidates
for page in self._get_pages(url_locations, project_name):
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\index.py", line 675, in _get_pages
page = self._get_page(location)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\index.py", line 793, in _get_page
return _get_html_page(link, session=self.session)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\index.py", line 144, in _get_html_page
"Cache-Control": "max-age=0",
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_vendor\requests\sessions.py", line 525, in get
return self.request('GET', url, **kwargs)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_internal\download.py", line 396, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_vendor\requests\sessions.py", line 512, in request
resp = self.send(prep, **send_kwargs)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_vendor\requests\sessions.py", line 622, in send
r = adapter.send(request, **kwargs)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_vendor\cachecontrol\adapter.py", line 53, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_vendor\requests\adapters.py", line 410, in send
conn = self.get_connection(request.url, proxies)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_vendor\requests\adapters.py", line 304, in get_connection
proxy_url = parse_url(proxy)
File "c:\program files (x86)\python3.7.2\lib\site-packages\pip\_vendor\urllib3\util\url.py", line 196, in parse_url
host, url = url.split(']', 1)
ValueError: not enough values to unpack (expected 2, got 1)


Je suis donc allé voir le fichier de la dernière ligne d'erreur "url.py", et après avoir conduit quelques tests à base de "print", j'ai remarqué que l'erreur venait de mon "Username", qui possède le caractère "/" !

Or ce caractère est considéré dans le fichier qui analyse HTTPS_PROXY comme un séparateur dans le programme, afin de construire les chemins d'URL (par exemple vers le lien possédant la librairie), il est utilisé dans une fonction "split". Mon username possédant ce caractère, il se retrouve alors coupé en deux, avec "[Début d'username" stocké dans la variable "url" du programme, et "FinUsername:passwd@]proxy.server:proxyPort" stocké dans la variable "path" du programme, et le parsing ne peut plus avoir lieu ensuite car le programme doit extraire l'username et le Password ensemble depuis une seule variable et le fait à l'aide de crochets, mais ces crochets se retrouvent dans "path" et "url" (le programme unpackant "url" qui possède le crochet gauche, ne retrouve pas le crochet droit et considère alors qu'il n'y a qu'un seul élément.

Suite à cela, j'ai pensé changer mon nom d'utilisateur, mais je n'y suis pas autorisé, je voudrais donc savoir :
- s'il y a un autre moyen de télécharger la bibliothèque
- S'il y a un moyen de modifier le programme url.py afin que le "/" de mon nom d'utilisateur ne soit pas considéré comme délimitant un chemin d'URL.

Merci d'avance pour votre aide !
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
5250
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 octobre 2019
806
1
Merci
Salut Kikumachi,

A tout hasard, essaye de remplacer le "/" dans ta variable d'environnement par "%2F" (qui est la version URL encoded de ce caractère).


Dal

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 63583 internautes nous ont dit merci ce mois-ci

[Dal]
Messages postés
5250
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 octobre 2019
806 -
Oui, c'est une erreur signalée par le compilateur, qui ne se produit pas sous Linux.

Tu pourrais essayer ceci, mais c'est sans garantie, car je n'ai pas Visual Studio sous la main pour tester.

Dans c:\users\kikuma1000\appdata\local\temp\pip-install-alykgj28\pyhash\src\fnv\fnv.h repère les lignes qui contiennent :

#ifdef WIN32

et remplace les par :

#ifdef _WIN32

la macro WIN32 ne semble pas (plus) définie par les versions récentes de Visual Studio

https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2017
Malheureusement, j'ai essayé et cela n'a aucun résultat.

Au cas où, je tenais à préciser quelque chose d'étrange : je ne trouve pas le dossier "pip-install-alykgj28" dans mon dossier "Temp". Plus généralement quand je relance la commande et qu'un dossier "pip-install-XXXXX" apparaît dans les lignes d'erreurs, je trouve dans l'explorateur de fichiers un dossier "pip-install-YYYYY", c'est là que j'y ai modifié ce que vous m'avez demandé.
[Dal]
Messages postés
5250
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 octobre 2019
806 -
Salut Kikumachi,

Comme je te l'ai dit, étant sous Linux, je ne peux pas tester cela pour toi.

Cela dit, si
c:\users\kikuma1000\appdata\local\temp\pip-install-alykgj28\
n'existe plus, c'est que ce répertoire temporaire a été effacé après la tentative d'installation échouée, et peut-être que tu modifies quelque chose qui n'est pas utilisé à l'installation si pip décompresse de nouveau le fichier tgz dans un répertoire temporaire.

Essaye ceci, pour être sûr d'utiliser à l'installation la version modifiée du code source :

- télécharge https://files.pythonhosted.org/packages/55/61/56af3d9ab410b0f73a1a38cf8a93f656ee9937d59c7074a3afa5edbd6008/pyhash-0.9.1.tar.gz
- décompresse le fichier
pyhash-0.9.1.tar.gz
ainsi récupéré dans un répertoire que tu pourras retrouver aisément en ligne de commande, disons
c:\pyhash\
... (si ton Windows ne sait pas décompresser les fichiers .tgz, télécharge 7-zip pour ce faire)
- modifie le fichier
src\fnv\fnv.h
contenu dans cette arborescence avec un éditeur de texte comme Notepad++ comprenant le format Unix de fichiers textes en modifiant chaque occurrence de
#ifdef WIN32
par
#ifdef _WIN32
...
- ouvre une ligne de commande
cmd
en tant qu'administrateur et déplace toi avec
cd
jusqu'au répertoire racine du package où se trouve
setup.py
(vérifie en faisant
dir
que
setup.py
est bien listé) dans le répertoire courant où tu te trouves (selon la façon dont tu auras décompressé le fichier tgz ce répertoire peut être atteint par exemple avec un
cd c:\pyhash\pyhash-0.9.1\
)
- lance
pip install .
(après install, c'est un espace et un point) ou
python setup.py install
pour tenter l'installation

Cette dernière commande lance pip ou Python pour l'installation du projet local contenu dans le répertoire courant, ainsi tu es sûr de tenter d'installer ta version locale rectifiée.

Dal
Bonjour,

J'ai suivi vos instructions et cela semble marcher pour la bibliothèque fnv.

J'obtiens néanmoins toujours une erreur (ici en ayant tapé "pip install .")

Processing c:\pyhash
Building wheels for collected packages: pyhash
Building wheel for pyhash (setup.py) ... error
Complete output from command c:\programdata\anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\kikuma1000\\AppData\\Local\\Temp\\pip-req-build-uqaj0o0z\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\kikuma1000\AppData\Local\Temp\pip-wheel-n5u_mmlj --python-tag cp37:
running bdist_wheel
running build
running build_py
creating build\lib.win-amd64-3.7
creating build\lib.win-amd64-3.7\pyhash
copying pyhash\__init__.py -> build\lib.win-amd64-3.7\pyhash
Fixing build\lib.win-amd64-3.7\pyhash\__init__.py
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
Fixing build\lib.win-amd64-3.7\pyhash\__init__.py
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
running build_clib
building 'fnv' library
building 'smhasher' library
building 't1ha' library
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DT1HA0_AESNI_AVAILABLE=1 -DT1HA0_RUNTIME_SELECT=1 -DT1HA_USE_INDIRECT_FUNCTIONS=1 "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcsrc/t1ha/src/t1ha0.c /Fobuild\temp.win-amd64-3.7\src/t1ha/src/t1ha0.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
t1ha0.c
src/t1ha/src/t1ha0.c(437): error C2059: erreur de syntaxe : 'chaîne'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

----------------------------------------
Failed building wheel for pyhash
Running setup.py clean for pyhash
Failed to build pyhash
Installing collected packages: pyhash
Running setup.py install for pyhash ... error
Complete output from command c:\programdata\anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\kikuma1000\\AppData\\Local\\Temp\\pip-req-build-uqaj0o0z\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\kikuma1000\AppData\Local\Temp\pip-record-_ni6n8j2\install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
creating build\lib.win-amd64-3.7\pyhash
copying pyhash\__init__.py -> build\lib.win-amd64-3.7\pyhash
Fixing build\lib.win-amd64-3.7\pyhash\__init__.py
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
Fixing build\lib.win-amd64-3.7\pyhash\__init__.py
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
running build_clib
building 'fnv' library
creating build\temp.win-amd64-3.7
creating build\temp.win-amd64-3.7\src
creating build\temp.win-amd64-3.7\src\fnv
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcsrc/fnv/hash_32.c /Fobuild\temp.win-amd64-3.7\src/fnv/hash_32.obj
hash_32.c
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcsrc/fnv/hash_32a.c /Fobuild\temp.win-amd64-3.7\src/fnv/hash_32a.obj
hash_32a.c
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcsrc/fnv/hash_64.c /Fobuild\temp.win-amd64-3.7\src/fnv/hash_64.obj
hash_64.c
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcsrc/fnv/hash_64a.c /Fobuild\temp.win-amd64-3.7\src/fnv/hash_64a.obj
hash_64a.c
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\lib.exe build\temp.win-amd64-3.7\src/fnv/hash_32.obj build\temp.win-amd64-3.7\src/fnv/hash_32a.obj build\temp.win-amd64-3.7\src/fnv/hash_64.obj build\temp.win-amd64-3.7\src/fnv/hash_64a.obj /OUT:build\temp.win-amd64-3.7\fnv.lib
Microsoft (R) Library Manager Version 14.16.27026.1
Copyright (C) Microsoft Corporation. All rights reserved.

LINK : .netmodule ou module MSIL compilé avec /GL trouvé ; redémarrage de l'édition de liens avec /LTCG ; ajoutez /LTCG à la ligne de commande de l'édition de liens pour améliorer les performances de l'Éditeur de liens
Microsoft (R) Library Manager Version 14.16.27026.1
Copyright (C) Microsoft Corporation. All rights reserved.

building 'smhasher' library
creating build\temp.win-amd64-3.7\src\smhasher
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/smhasher/MurmurHash1.cpp /Fobuild\temp.win-amd64-3.7\src/smhasher/MurmurHash1.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
MurmurHash1.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/smhasher/MurmurHash2.cpp /Fobuild\temp.win-amd64-3.7\src/smhasher/MurmurHash2.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
MurmurHash2.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/smhasher/MurmurHash3.cpp /Fobuild\temp.win-amd64-3.7\src/smhasher/MurmurHash3.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
MurmurHash3.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/smhasher/City.cpp /Fobuild\temp.win-amd64-3.7\src/smhasher/City.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
City.cpp
src/smhasher/City.cpp(140): warning C4267: 'initialisation' : conversion de 'size_t' en 'uint32', perte possible de données
src/smhasher/City.cpp(152): warning C4267: 'argument' : conversion de 'size_t' en 'uint32', perte possible de données
src/smhasher/City.cpp(156): warning C4267: 'initialisation' : conversion de 'size_t' en 'uint32', perte possible de données
src/smhasher/City.cpp(171): warning C4267: 'initialisation' : conversion de 'size_t' en 'uint32', perte possible de données
src/smhasher/City.cpp(258): warning C4267: 'argument' : conversion de 'size_t' en 'int', perte possible de données
src/smhasher/City.cpp(269): warning C4267: 'initialisation' : conversion de 'size_t' en 'uint32', perte possible de données
src/smhasher/City.cpp(388): warning C4267: 'initialisation' : conversion de 'size_t' en 'long', perte possible de données
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/smhasher/Spooky.cpp /Fobuild\temp.win-amd64-3.7\src/smhasher/Spooky.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
Spooky.cpp
src/smhasher/Spooky.cpp(176): warning C4267: '=' : conversion de 'size_t' en 'uint8', perte possible de données
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/smhasher/metrohash64.cpp /Fobuild\temp.win-amd64-3.7\src/smhasher/metrohash64.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
metrohash64.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/smhasher/metrohash64crc.cpp /Fobuild\temp.win-amd64-3.7\src/smhasher/metrohash64crc.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
metrohash64crc.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/smhasher/metrohash128.cpp /Fobuild\temp.win-amd64-3.7\src/smhasher/metrohash128.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
metrohash128.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/smhasher/metrohash128crc.cpp /Fobuild\temp.win-amd64-3.7\src/smhasher/metrohash128crc.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
metrohash128crc.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tcsrc/smhasher/xxhash.c /Fobuild\temp.win-amd64-3.7\src/smhasher/xxhash.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
xxhash.c
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\lib.exe build\temp.win-amd64-3.7\src/smhasher/MurmurHash1.obj build\temp.win-amd64-3.7\src/smhasher/MurmurHash2.obj build\temp.win-amd64-3.7\src/smhasher/MurmurHash3.obj build\temp.win-amd64-3.7\src/smhasher/City.obj build\temp.win-amd64-3.7\src/smhasher/Spooky.obj build\temp.win-amd64-3.7\src/smhasher/metrohash64.obj build\temp.win-amd64-3.7\src/smhasher/metrohash64crc.obj build\temp.win-amd64-3.7\src/smhasher/metrohash128.obj build\temp.win-amd64-3.7\src/smhasher/metrohash128crc.obj build\temp.win-amd64-3.7\src/smhasher/xxhash.obj /OUT:build\temp.win-amd64-3.7\smhasher.lib
Microsoft (R) Library Manager Version 14.16.27026.1
Copyright (C) Microsoft Corporation. All rights reserved.

LINK : .netmodule ou module MSIL compilé avec /GL trouvé ; redémarrage de l'édition de liens avec /LTCG ; ajoutez /LTCG à la ligne de commande de l'édition de liens pour améliorer les performances de l'Éditeur de liens
Microsoft (R) Library Manager Version 14.16.27026.1
Copyright (C) Microsoft Corporation. All rights reserved.

building 't1ha' library
creating build\temp.win-amd64-3.7\src\t1ha
creating build\temp.win-amd64-3.7\src\t1ha\src
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DT1HA0_AESNI_AVAILABLE=1 -DT1HA0_RUNTIME_SELECT=1 -DT1HA_USE_INDIRECT_FUNCTIONS=1 "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcsrc/t1ha/src/t1ha0.c /Fobuild\temp.win-amd64-3.7\src/t1ha/src/t1ha0.obj /O2 /GL /MT /EHsc /Gy /Zi
cl : Ligne de commande warning D9025 : substitution de '/MD' par '/MT'
t1ha0.c
src/t1ha/src/t1ha0.c(437): error C2059: erreur de syntaxe : 'chaîne'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

----------------------------------------
Command "c:\programdata\anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\kikuma1000\\AppData\\Local\\Temp\\pip-req-build-uqaj0o0z\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\kikuma1000\AppData\Local\Temp\pip-record-_ni6n8j2\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\kikuma1000\AppData\Local\Temp\pip-req-build-uqaj0o0z\
[Dal]
Messages postés
5250
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
16 octobre 2019
806 -
Tu as donc pu compiler fnv. Tu devrais avertir les personnes qui gèrent ce paquet Python sur le fait que l'installation sous Windows exige le compilateur de Visual Studio et que ces directives sont erronées pour ta version de compilateur (gcc définit
WIN32
et aussi
_WIN32
et cela ne lui pose pas de problèmes, par contre ton Visual Studio ne connais pas
WIN32
).

Ton problème est maintenant avec une autre bibliothèque qui est
t1ha
.

L'erreur pertinente est
src/t1ha/src/t1ha0.c(437): error C2059: erreur de syntaxe : 'chaîne'


Le code qui ne compile pas est en ligne 437 et son contexte est le suivant :

#if T1HA_USE_INDIRECT_FUNCTIONS
/* Use IFUNC (GNU ELF indirect functions) to choice implementation at runtime.
 * For more info please see
 * https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
 * and https://sourceware.org/glibc/wiki/GNU_IFUNC */
#if __has_attribute(ifunc)
uint64_t t1ha0(const void *data, size_t len, uint64_t seed)
    __attribute__((ifunc("t1ha0_resolve")));
#else
__asm("\t.globl\tt1ha0\n\t.type\tt1ha0, "
      "%gnu_indirect_function\n\t.set\tt1ha0,t1ha0_resolve");
#endif /* __has_attribute(ifunc) */
(...)

La ligne 437 dans le source est la ligne ci-dessus commençant par la directive __asm.

Il y a plusieurs problèmes et je ne suis pas sûr de pouvoir déboguer le code pour trouver quelque chose d'équivalent et fonctionnant avec Visual Studio (cette syntaxe n'est pas celle supportée par Visual Studio, Visual Studio ne supporte pas l'assembleur en ligne en x64,...)... et.. ce n'est sans doutes pas à moi de le faire de toutes façons :-)

De toutes façons ce code semble vouloir utiliser une capacité du compilateur gcc "INDIRECT_FUNCTIONS" https://sourceware.org/glibc/wiki/GNU_IFUNC (et je pense propre aussi au format ELF sous Linux, mais je ne suis pas sûr de cette partie) et le code devrait être conçu pour tester s'il est bien compilé avec gcc, et ne ne devrait pas tenter de compiler cette partie ou trouver autre chose d'équivalent existant pour Visual Studio pour réaliser l'optimisation faite ici (si tant est que cela existe, ce que je ne sais pas).

Dans ton cas, le plus simple pourrait être de retirer de setup.py la définition de "T1HA_USE_INDIRECT_FUNCTIONS", qui est ligne 99 de setup.py : en supprimant la ligne
("T1HA_USE_INDIRECT_FUNCTIONS", 1),
ou en la commentant avec un # devant. Ainsi le compilateur ne devrait pas tenter de prendre en compte cette partie du code. Le résultat sera moins optimisé, mais, au moins, tu pourras passer cet obstacle dans la compilation. Là aussi, je peux pas tester, mais il y a de bonnes chances que cela débloque ce problème...

Enfin, il faudrait aussi probablement également signaler cet autre problème aux responsables du paquet :-)

Dal
Commenter la réponse de [Dal]