2016-07-07 26 views
4

Meine tox.ini Datei sieht wie folgt auf Windowstox nicht pyYaml auf Windows

[tox] 
envlist = cpy27,dpy27 
skip_missing_interpreters = True 

[testenv] 

basepython = 
    cpy27: C:\Python27\python.exe 
    dpy27: D:\Python27\python.exe 

deps = 
    pytest 

commands = py.test tests 

Aber installieren, wenn ich „tox“ von Eingabeaufforderung zu tun, ich bin diesen Fehler zu sehen. Warum ist das? Ich sehe keinen Fehler, wenn ich Python laufen auf der Kommandozeile installieren setup.py

Installing collected packages: coverage, pytest-cov, requests, psutil, pytz, enum, argh, pathtools, PyYAML, watchdog, monit 
    Running setup.py install for PyYAML: started 
    Running setup.py install for PyYAML: finished with status 'error' 
    Complete output from command d:\repos\foo\.tox\dpy27\scripts\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\foo\\appdata\\local\\temp\\pip-build-bbx8kz\\PyYAML\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\vikone\appdata\local\temp\pip-zyvbbh-record\install-record.txt --single-version-externally-managed --compile --install-headers d:\repos\foo\.tox\dpy27\include\site\python2.7\PyYAML: 
    running install 
    running build 
    running build_py 
    creating build 
    creating build\lib.win-amd64-2.7 
    creating build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\composer.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\constructor.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\cyaml.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\dumper.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\emitter.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\error.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\events.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\loader.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\nodes.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\parser.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\reader.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\representer.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\resolver.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\scanner.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\serializer.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\tokens.py -> build\lib.win-amd64-2.7\yaml 
    copying lib\yaml\__init__.py -> build\lib.win-amd64-2.7\yaml 
    running build_ext 
    creating build\temp.win-amd64-2.7 
    creating build\temp.win-amd64-2.7\Release 
    checking if libyaml is compilable 
    error: [Error 2] The system cannot find the file specified 

UPDATE

Ich habe bemerkt, dass, wenn ich manuell die virtualenv aktivieren und tun „pyyaml ​​installieren pip "Es schlägt mit demselben Fehler fehl. Aber wenn ich in der regulären Eingabeaufforderung, nicht virtualenv, und den gleichen Befehl ausführen, installiert es gut.

Das scheint also ein Problem mit Pyyaml ​​und virtualenv, aber nicht toxisch an sich. Auch wenn ich mit dem Befehl easy_install in tox.ini versuche, funktioniert es ohne Probleme.

[testenv] 
install_command = easy_install {opts} {packages} 
+0

Ändert sich etwas mit 'passv = *' in Ihrer 'tox.ini' unter' [testtenv] '? –

+0

das hat nicht funktioniert – user330612

Antwort

2

Es sieht aus wie es keine Räder für die Binärdateien sind und wenn PIP-Downloads PyYAML versucht, es zu bauen und kann es nicht. Ich habe das für meinen Computer repariert, indem ich den Quellcode heruntergeladen, ein Rad erstellt und dann auf meinen lokalen Devpi-Server hochgeladen habe. Ich könnte es dann mit pip in einem virtualenv installieren. Ich verwende Windows 10, wenn das wichtig ist.

EDIT Das Problem gefunden. Dies muss installiert werden. VC für Python (das ist 2.7, aber verwenden Sie das entsprechende) https://www.microsoft.com/en-gb/download/details.aspx?id=44266

+1

Wie funktioniert es in regulären Umgebung, aber nicht in virtueller Umgebung? Sollte es in beiden Fällen in diesem Fall nicht fehlschlagen – user330612

+0

Ich habe keine Ahnung. Es ist nicht mein Code. Ich wollte nur, dass es funktioniert und jetzt tut es es. PyYaml scheint jetzt ein Projekt zu sein, das fast nicht mehr gewartet wird, so dass es wahrscheinlich nicht repariert wird. –

+1

Hallo, ich hatte einen weiteren Blick und ich habe Setuptools als das Problem identifiziert. Setuptools 24.0.x kann pyyaml ​​nicht installieren, während 23.2.1 einwandfrei funktioniert. 24.0.1 und 24.0.2 schlagen mit der oben angegebenen Nachricht fehl. 24.0.0 schlägt mit einem Stacktrace über eine fehlende Datei fehl. Ich werde weiter nachsehen. –