2016-05-02 16 views
1

Ich versuche, ein Conda-Paket der open energy modelling framework (oemof) PyPi package wie in der entsprechenden manual beschrieben zu bauen. Das oemof-Paket hat das Pyomo Paket als eine Anforderung, die ich vorher mit einem geeigneten recipe installiert hatte.Anaconda: Fehler beim Erstellen von PyPi-Paket ("Paket XY fehlt in aktuellen Linux-64-Kanälen")

Mein Problem ist, dass ich jetzt einen Fehler während des Build-Prozesses erhalten:

Package missing in current linux-64 channels: 
- pyomo >=4.2.0 

wheras meiner installierten Pyomo Version über 4.2 zu sein scheint:

[email protected]:~/.anaconda3/bin$ ./conda update pyomo 
pyomo      4.2.10784    py35_10 cachemeorg 

Was hier mein Fehler ist und wie kann Ich baue mein Paket wie im Conda Handbuch beschrieben?

Vielen Dank im Voraus!

Im folgenden finden Sie die Schritte sehe ich durch so weit ging:

[email protected]:~/.anaconda3/bin$ ./conda skeleton pypi oemof 
Warning, the following versions were found for oemof 
0.0.6 
0.0.5 
0.0.4 
0.0.3 
Using 0.0.6 
Use --version to specify a different version. 
Using url https://pypi.python.org/packages/3b/1f/5a82acf8cbcb3d0adb537346b2939cb6fa415e9c347f734af19c8a1b50d1/oemof-0.0.6.tar.gz (52 KB) for oemof. 
Downloading oemof 
Using cached download 
Unpacking oemof... 
done 
working in /tmp/tmpd67mbpi2conda_skeleton_oemof-0.0.6.tar.gz 
Using Anaconda Cloud api site https://api.anaconda.org 
Fetching package metadata: ...... 
Solving package specifications: ......... 

The following NEW packages will be INSTALLED: 

    mkl:  11.3.1-0  
    numpy:  1.11.0-py35_0 
    openssl: 1.0.2g-0  
    pip:  8.1.1-py35_1 
    python:  3.5.1-0  
    pyyaml:  3.11-py35_1 
    readline: 6.2-2   
    setuptools: 20.7.0-py35_0 
    sqlite:  3.9.2-0  
    tk:   8.5.18-0  
    wheel:  0.29.0-py35_0 
    xz:   5.0.5-1  
    yaml:  0.1.6-0  
    zlib:  1.2.8-0  

Linking packages ... 
[  COMPLETE  ]|###########################################################################################| 100% 
Applying patch: '/tmp/tmpd67mbpi2conda_skeleton_oemof-0.0.6.tar.gz/pypi-distutils.patch' 
patching file core.py 
Hunk #1 succeeded at 167 with fuzz 2 (offset 1 line). 
Using "UNKNOWN" for the license 
Writing recipe for oemof 
Done 

[email protected]:~/.anaconda3/bin$ ./conda build oemof 
Removing old build environment 
Removing old work directory 
BUILD START: oemof-0.0.6-py35_0 
Using Anaconda Cloud api site https://api.anaconda.org 
Fetching package metadata: ...... 
Solving package specifications: . 
Package missing in current linux-64 channels: 
    - pyomo >=4.2.0 
Missing dependency pyomo, but found recipe directory, so building pyomo first 
Ignoring non-recipe: pyomo 
Removing old build environment 
Removing old work directory 
BUILD START: oemof-0.0.6-py35_0 
Fetching package metadata: ...... 
Solving package specifications: . 
Package missing in current linux-64 channels: 
    - pyomo >=4.2.0 

[email protected]:~/.anaconda3/bin$ ./conda update pyomo 
Using Anaconda Cloud api site https://api.anaconda.org 
Fetching package metadata: .... 
# All requested packages already installed. 
# packages in environment at /home/cord/.anaconda3: 
# 
pyomo      4.2.10784    py35_10 cachemeorg 
[email protected]:~/.anaconda3/bin$ 

Antwort

1

Für Ihre Build-Schritt bitte versuchen Sie es conda build -c cachemeorg oemof.

Ich glaube, das Problem hier ist, dass conda build schafft eine ganz neue Conda-Umgebung, wenn es baut und es wird alle Paket Abhängigkeiten, einschließlich Pyomo, in dieser Umgebung installieren. Es installiert sie, indem es in den Channels und nicht über Ihre derzeit installierten Pakete in Ihrem Stamm sucht. In diesem Beispiel haben Sie pyomo als Paket installiert, das jedoch nicht von einem Kanal in Ihrer Kanalliste stammt, wie Sie es selbst installiert haben. Daher findet es das pyomo-Paket beim Suchen Ihrer Conda-Kanäle nicht. Aber wenn wir einen Kanal zu der Liste hinzufügen, die conda build betrachtet (über die -c Flagge), die pyomo hat, dann sollte es funktionieren. Es sieht aus wie cachemeorg hat diese package und daher sollte der obige Befehl funktionieren.

+0

Arbeitete wie ein Charme. Danke vielmals! –