Cantera / cantera

Chemical kinetics, thermodynamics, and transport tool suite
https://cantera.org
Other
614 stars 347 forks source link

Create a conda build recipe #261

Closed bryanwweber closed 8 years ago

bryanwweber commented 9 years ago

It should be possible to create a conda build recipe, so that Cantera can be used easily as part of the Anaconda/conda toolkit. On Windows, this may not be such an issue because executables are generally distributed, but might make it easier for Linux/Mac.

rwest commented 8 years ago

Is anyone working on this? I think it would be a great help. I'd love to have one set of simple instructions that work cross-platform. eg. "Dear Class, download Anaconda, type conda install cantera and go!"

bryanwweber commented 8 years ago

@rwest I'm thinking about integrating Cantera into a class next semester, so I planned to work on this over winter break (mid-December time frame). If you want to work on it before then, please feel free. I think it might be a bit easier if you use Ray's branch that includes Sundials as a submodule, in PR #309

rwest commented 8 years ago

OK. In the mean time, I'm guessing homebrew is the easiest way to get it on a OS X, but if I go that route does anyone know if it is compatible with the Acaconda binaries?

bryanwweber commented 8 years ago

@rwest Well, it turned out to be easier than I thought, and I didn't even have to make any changes to Cantera. I have a repo on my account, https://github.com/bryanwweber/conda-recipes/ where I've put the recipe. Its in the add-cantera-recipe branch for now, but I'll merge it into master later today. I've also uploaded built packages for Python 2.7, 3.3, 3.4, and 3.5 for Linux (Ubuntu), Windows x64, and OSX to anaconda.org. You can install them by writing

conda install -c bryanwweber/channel/devel cantera

The only version up there right now is built on 0703770, which is why they're on the devel channel, but I'll upload a built stable version (without SUNDIALS) to the main channel later, at which point you should be able to do

conda install -c bryanwweber cantera

to install Cantera v2.2.0. If you get a chance, can you test them on machines that aren't developer machines? I'm not sure if there are any dependencies of the built libraries that don't get included with the package, since all of my machines are set up to develop Cantera.

rwest commented 8 years ago

Brilliant! Thanks @bryanwweber. Will give it a spin when I get a chance.

bryanwweber commented 8 years ago

OK the stable version packages should be live now. To build the packages

git clone https://github.com/bryanwweber/conda-recipes.git
cd conda-recipes
conda build --python=2.7 --python=3.3 --python=3.4 --python=3.5 cantera-dev

will build the devel packages for all the versions of Python that Cantera supports.

conda build --python=2.7 --python=3.3 --python=3.4 --python=3.5 cantera-stable

following the clone will build the stable version packages.

bryanwweber commented 8 years ago

The recipes seem to be working pretty well, so I will close this issue now.

walsh-p commented 8 years ago

I am on Windows 10. I tried conda install -c bryanwweber cantera and it appeared to work, but when I try to import cantera I get a DLL error:

Deactivating environment "C:\Users\Patrick\Anaconda2"...
Activating environment "C:\Users\Patrick\Anaconda2"...
[Anaconda2] C:\Users\Patrick\C10>python
Python 2.7.11 |Anaconda 2.4.1 (64-bit)| (default, Jan 29 2016, 14:26:21) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import cantera
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Patrick\Anaconda2\lib\site-packages\cantera\__init__.py", line 1, in <module>
    from ._cantera import *
ImportError: DLL load failed: The specified module could not be found.
>>>

This is my conda info and list

[Anaconda2] C:\Users\Patrick\C10>conda info
Current conda install:

             platform : win-64
        conda version : 3.19.1
  conda-build version : 1.18.2
       python version : 2.7.11.final.0
     requests version : 2.9.1
     root environment : C:\Users\Patrick\Anaconda2  (writable)
  default environment : C:\Users\Patrick\Anaconda2
     envs directories : C:\Users\Patrick\Anaconda2\envs
        package cache : C:\Users\Patrick\Anaconda2\pkgs
         channel URLs : https://repo.continuum.io/pkgs/free/win-64/
                        https://repo.continuum.io/pkgs/free/noarch/
                        https://repo.continuum.io/pkgs/pro/win-64/
                        https://repo.continuum.io/pkgs/pro/noarch/
          config file : None
    is foreign system : False

[Anaconda2] C:\Users\Patrick\C10>conda list
# packages in environment at C:\Users\Patrick\Anaconda2:
#
3to2                      1.1.1                     <pip>
_license                  1.1                      py27_1    defaults
alabaster                 0.7.6                    py27_0    defaults
anaconda                  2.4.1               np110py27_0    defaults
anaconda-client           1.2.1                    py27_0    defaults
argcomplete               1.0.0                    py27_1    defaults
astropy                   1.0.6               np110py27_0    defaults
babel                     2.1.1                    py27_0    defaults
backports-abc             0.4                       <pip>
backports.ssl-match-hostname 3.4.0.2                   <pip>
backports_abc             0.4                      py27_0    defaults
beautifulsoup4            4.4.1                    py27_0    defaults
bitarray                  0.8.1                    py27_1    defaults
blaze                     0.8.3                     <pip>
blaze-core                0.8.3                    py27_0    defaults
bokeh                     0.10.0                   py27_0    defaults
boto                      2.38.0                   py27_0    defaults
bottleneck                1.0.0               np110py27_0    defaults
bzip2                     1.0.6                     vc9_2  [vc9]  defaults
cantera                   2.2.1                    py27_0    bryanwweber
cdecimal                  2.3                      py27_1    defaults
cffi                      1.2.1                    py27_0    defaults
clyent                    1.2.0                    py27_0    defaults
colorama                  0.3.3                    py27_0    defaults
comtypes                  1.1.2                    py27_0    defaults
conda                     3.19.1                   py27_0    defaults
conda-build               1.18.2                   py27_0    defaults
conda-env                 2.4.5                    py27_0    defaults
configobj                 5.0.6                    py27_0    defaults
console_shortcut          0.1.1                    py27_1    defaults
cryptography              1.0.2                    py27_0    defaults
curl                      7.45.0                    vc9_0  [vc9]  defaults
cycler                    0.9.0                    py27_0    defaults
cython                    0.23.4                   py27_0    defaults
cytoolz                   0.7.4                    py27_0    defaults
datashape                 0.4.7               np110py27_1    defaults
decorator                 4.0.6                    py27_0    defaults
docutils                  0.12                     py27_1    defaults
enum34                    1.0.4                    py27_0    defaults
fastcache                 1.0.2                    py27_0    defaults
flask                     0.10.1                   py27_1    defaults
freetype                  2.5.5                     vc9_0  [vc9]  defaults
funcsigs                  0.4                      py27_0    defaults
gevent                    1.0.1                    py27_0    defaults
gevent-websocket          0.9.3                    py27_0    defaults
greenlet                  0.4.9                    py27_0    defaults
grin                      1.2.1                    py27_2    defaults
h5py                      2.5.0               np110py27_4    defaults
hdf5                      1.8.15.1                  vc9_4  [vc9]  defaults
idna                      2.0                      py27_0    defaults
ipaddress                 1.0.14                   py27_0    defaults
ipykernel                 4.2.2                    py27_0    defaults
ipython                   4.1.1                    py27_0    defaults
ipython-genutils          0.1.0                     <pip>
ipython-notebook          4.0.4                    py27_3    defaults
ipython-qtconsole         4.0.1                    py27_4    defaults
ipython_genutils          0.1.0                    py27_0    defaults
ipywidgets                4.1.1                    py27_0    defaults
itsdangerous              0.24                     py27_0    defaults
jdcal                     1.0                      py27_0    defaults
jedi                      0.9.0                    py27_0    defaults
jinja2                    2.8                      py27_0    defaults
jpeg                      8d                        vc9_0  [vc9]  defaults
jsonschema                2.4.0                    py27_0    defaults
jupyter                   1.0.0                    py27_1    defaults
jupyter-client            4.1.1                     <pip>
jupyter-console           4.1.0                     <pip>
jupyter-core              4.0.6                     <pip>
jupyter_client            4.1.1                    py27_0    defaults
jupyter_console           4.1.0                    py27_0    defaults
jupyter_core              4.0.6                    py27_0    defaults
launcher                  1.0.0                         4    defaults
libpng                    1.6.17                    vc9_1  [vc9]  defaults
libsodium                 1.0.3                         0    defaults
libtiff                   4.0.6                     vc9_1  [vc9]  defaults
llvmlite                  0.8.0                    py27_0    defaults
lxml                      3.4.4                    py27_0    defaults
markupsafe                0.23                     py27_0    defaults
matplotlib                1.5.0               np110py27_0    defaults
menuinst                  1.3.2                    py27_0    defaults
mistune                   0.7.1                    py27_0    defaults
mkl                       11.3.1                        0    defaults
msvc_runtime              1.0.1                     vc9_0  [vc9]  defaults
multipledispatch          0.4.8                    py27_0    defaults
nbconvert                 4.1.0                    py27_0    defaults
nbformat                  4.0.1                    py27_0    defaults
networkx                  1.10                     py27_0    defaults
nltk                      3.1                      py27_0    defaults
node-webkit               0.10.1                        0    defaults
nose                      1.3.7                    py27_0    defaults
notebook                  4.1.0                    py27_0    defaults
numba                     0.22.1              np110py27_0    defaults
numexpr                   2.4.4               np110py27_0    defaults
numpy                     1.10.4                   py27_0    defaults
odo                       0.3.4                    py27_0    defaults
openpyxl                  2.2.6                    py27_0    defaults
openssl                   1.0.2d                    vc9_0  [vc9]  defaults
pandas                    0.17.1              np110py27_0    defaults
path.py                   8.1.2                    py27_1    defaults
patsy                     0.4.0               np110py27_0    defaults
pep8                      1.6.2                    py27_0    defaults
pickleshare               0.5                      py27_0    defaults
pillow                    3.0.0                    py27_1    defaults
pip                       8.0.2                    py27_0    defaults
ply                       3.8                      py27_0    defaults
psutil                    3.3.0                    py27_0    defaults
py                        1.4.30                   py27_0    defaults
pyasn1                    0.1.9                    py27_0    defaults
pycosat                   0.6.1                    py27_0    defaults
pycparser                 2.14                     py27_0    defaults
pycrypto                  2.6.1                    py27_3    defaults
pycurl                    7.19.5.1                 py27_1    defaults
pyflakes                  1.0.0                    py27_0    defaults
pygments                  2.1                      py27_0    defaults
pyopenssl                 0.15.1                   py27_1    defaults
pyparsing                 2.0.3                    py27_0    defaults
pyqt                      4.11.4                   py27_5    defaults
pyreadline                2.1                      py27_0    defaults
pytables                  3.2.2               np110py27_1    defaults
pytest                    2.8.1                    py27_0    defaults
python                    2.7.11                        2    defaults
python-dateutil           2.4.2                    py27_0    defaults
pytz                      2015.7                   py27_0    defaults
pywin32                   219                      py27_1    defaults
pyyaml                    3.11                     py27_2    defaults
pyzmq                     15.2.0                   py27_0    defaults
qt                        4.8.7                     vc9_6  [vc9]  defaults
qtconsole                 4.1.1                    py27_0    defaults
requests                  2.9.1                    py27_0    defaults
rope                      0.9.4                    py27_1    defaults
scikit-image              0.11.3              np110py27_0    defaults
scikit-learn              0.17                np110py27_1    defaults
scipy                     0.16.0              np110py27_0    defaults
setuptools                19.6.2                   py27_0    defaults
simplegeneric             0.8.1                    py27_0    defaults
singledispatch            3.4.0.3                  py27_0    defaults
sip                       4.16.9                   py27_2    defaults
six                       1.10.0                   py27_0    defaults
snowballstemmer           1.2.0                    py27_0    defaults
sockjs-tornado            1.0.1                    py27_0    defaults
sphinx                    1.3.1                    py27_0    defaults
sphinx-rtd-theme          0.1.7                     <pip>
sphinx_rtd_theme          0.1.7                    py27_0    defaults
spyder                    2.3.8                    py27_0    defaults
spyder-app                2.3.8                    py27_0    defaults
sqlalchemy                1.0.9                    py27_0    defaults
ssl_match_hostname        3.4.0.2                  py27_0    defaults
statsmodels               0.6.1               np110py27_0    defaults
sympy                     0.7.6.1                  py27_0    defaults
tables                    3.2.2                     <pip>
tk                        8.5.18                    vc9_0  [vc9]  defaults
toolz                     0.7.4                    py27_0    defaults
tornado                   4.3                      py27_0    defaults
traitlets                 4.1.0                    py27_0    defaults
ujson                     1.33                     py27_0    defaults
unicodecsv                0.14.1                   py27_0    defaults
werkzeug                  0.11.2                   py27_0    defaults
wheel                     0.29.0                   py27_0    defaults
xlrd                      0.9.4                    py27_0    defaults
xlsxwriter                0.7.7                    py27_0    defaults
xlwings                   0.5.0                    py27_0    defaults
xlwt                      1.0.0                    py27_0    defaults
zeromq                    4.1.3                     vc9_1  [vc9]  defaults
zlib                      1.2.8                     vc9_2  [vc9]  defaults

[Anaconda2] C:\Users\Patrick\C10>

A colleague reports something similar on Windows 8. Any thoughts?

bryanwweber commented 8 years ago

It might be that you're missing the VC++ redistributable. Try downloading the file from here: https://www.microsoft.com/en-us/download/details.aspx?id=48145

walsh-p commented 8 years ago

That worked, thank you.