Fix bug in install process.
The *.so are now in the fortran folders, so the MANIFEST.in file was updated to include those shared objects in the pip source distribution
This commit is contained in:
parent
93782236b0
commit
c22f86fe76
9
Makefile
9
Makefile
|
@ -15,7 +15,7 @@ endif
|
||||||
.PHONY: clean version selfex venv doc
|
.PHONY: clean version selfex venv doc
|
||||||
|
|
||||||
|
|
||||||
selfex: clean
|
selfex: results purge
|
||||||
@echo "Creating the self-extractible setup program... "
|
@echo "Creating the self-extractible setup program... "
|
||||||
# update the version
|
# update the version
|
||||||
@cp ./src/msspec/version.py ./src/msspec/version.py.bak
|
@cp ./src/msspec/version.py ./src/msspec/version.py.bak
|
||||||
|
@ -58,6 +58,13 @@ clean:
|
||||||
@+$(MAKE) -C doc/ clean $(SUPPRESS_OUPUT)
|
@+$(MAKE) -C doc/ clean $(SUPPRESS_OUPUT)
|
||||||
@rm -rf package
|
@rm -rf package
|
||||||
|
|
||||||
|
purge: clean
|
||||||
|
@echo "Removing also shared objects..."
|
||||||
|
@find ./src -type f -name '*.so' -exec rm -f {} +
|
||||||
|
|
||||||
|
results:
|
||||||
|
@+$(MAKE) -C src results
|
||||||
|
|
||||||
|
|
||||||
venv:
|
venv:
|
||||||
@virtualenv --python=python3 --system-site-packages ci_venv $(SUPPRESS_OUPUT)
|
@virtualenv --python=python3 --system-site-packages ci_venv $(SUPPRESS_OUPUT)
|
||||||
|
|
104
README.md
104
README.md
|
@ -5,11 +5,107 @@ This is the Python MsSpec version with support for Python 3.x and dynamic memory
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
To install
|
To work with the git repository
|
||||||
==========
|
===============================
|
||||||
|
|
||||||
|
It is higly recommended to work in a Python virtual environment.
|
||||||
|
To create one, you can use:
|
||||||
|
|
||||||
|
|
||||||
```Bash
|
```Bash
|
||||||
make selfex
|
virtualenv --python=python3 msspec_venv
|
||||||
./pymsspec-###.setup
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
virtualenv --python=python3 --system-site-packages msspec_venv
|
||||||
|
```
|
||||||
|
|
||||||
|
to activate the virtual environment (if you are in the folder where you created "msspec\_venv"):
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
source ./msspec_venv/bin/activate
|
||||||
|
```
|
||||||
|
|
||||||
|
To get the python package dependencies, you can install the requirements with the provided requirements.txt file.
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
pip install --upgrade -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
You also need to export the path to the msspec package in the PYTHONPATH variable (replace the whereisthegitrepo part
|
||||||
|
of the string with the actual absolute path of your repo.
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
export PYTHONPATH=/whereisthegitrepo/src:$PYTHONPATH
|
||||||
|
```
|
||||||
|
|
||||||
|
Finally you need to compile the fortran libs:
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
make pybinding
|
||||||
|
```
|
||||||
|
|
||||||
|
That's all. All you need to do each time you want to work with msspec is:
|
||||||
|
|
||||||
|
- To activate the virtual environment
|
||||||
|
- Export the path to msspec package in the PYTHONPATH variable
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
To create a self-extracible archive
|
||||||
|
===================================
|
||||||
|
|
||||||
|
If you want to create a setup program to install msspec:
|
||||||
|
|
||||||
|
At the root of the repo, type in
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
make selfex
|
||||||
|
```
|
||||||
|
|
||||||
|
This will compile the code and create the results of unit tests, then it will create a self-extractible archive in the package folder
|
||||||
|
|
||||||
|
|
||||||
|
To install the \*.setup file
|
||||||
|
============================
|
||||||
|
|
||||||
|
Just execute the file with a shell
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
sh ./MsSpec-###.setup
|
||||||
|
```
|
||||||
|
|
||||||
|
Replace ### with the version number.
|
||||||
|
|
||||||
|
To automatically accept the defaults you could type in
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
sh ./MsSpec-###.setup --accept -- -y
|
||||||
|
```
|
||||||
|
|
||||||
|
and to make the install process verbose:
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
sh ./MsSpec-###.setup -- -d
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
numpy
|
||||||
|
ase
|
||||||
|
h5py
|
||||||
|
lxml
|
||||||
|
pint
|
||||||
|
terminaltables
|
||||||
|
pycairo
|
||||||
|
coverage
|
||||||
|
sphinx
|
|
@ -1,3 +1,3 @@
|
||||||
include msspec/spec/*.so
|
include msspec/spec/fortran/*.so
|
||||||
include msspec/phagen/*.so
|
include msspec/phagen/fortran/*.so
|
||||||
include msspec/results.txt
|
include msspec/results.txt
|
||||||
|
|
|
@ -21,7 +21,9 @@ pybinding:
|
||||||
@+$(MAKE) -C msspec/spec/fortran pybinding $(SUPPRESS_OUPUT)
|
@+$(MAKE) -C msspec/spec/fortran pybinding $(SUPPRESS_OUPUT)
|
||||||
@+$(MAKE) -C msspec/phagen/fortran pybinding $(SUPPRESS_OUPUT)
|
@+$(MAKE) -C msspec/phagen/fortran pybinding $(SUPPRESS_OUPUT)
|
||||||
|
|
||||||
results: pybinding
|
results: msspec/results.txt
|
||||||
|
|
||||||
|
msspec/results.txt: pybinding
|
||||||
@echo "Generating results for unittests"
|
@echo "Generating results for unittests"
|
||||||
@coverage run --source=./ --omit=msspec/es/*,msspec/msspecgui/* msspec/create_tests_results.py 1>/dev/null
|
@coverage run --source=./ --omit=msspec/es/*,msspec/msspecgui/* msspec/create_tests_results.py 1>/dev/null
|
||||||
# create the html coverage report
|
# create the html coverage report
|
||||||
|
|
|
@ -39,6 +39,8 @@ objects_src += $(renormalization_src) $(phd_se_noso_nosp_nosym_src)
|
||||||
objects_src += $(eig_common_src) $(eig_mi_src) $(eig_pw_src)
|
objects_src += $(eig_common_src) $(eig_mi_src) $(eig_pw_src)
|
||||||
objects:=$(patsubst %.f,%.o, $(objects_src))
|
objects:=$(patsubst %.f,%.o, $(objects_src))
|
||||||
|
|
||||||
|
libs_targets := phd_se_noso_nosp_nosym.target eig_mi.target eig_pw.target
|
||||||
|
|
||||||
EXE=prog
|
EXE=prog
|
||||||
|
|
||||||
ifeq ($(DEBUG),1)
|
ifeq ($(DEBUG),1)
|
||||||
|
@ -53,22 +55,22 @@ export COMP_OPTS
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
||||||
|
|
||||||
pybinding: phd_se_noso_nosp_nosym eig_mi eig_pw
|
pybinding: $(libs_targets)
|
||||||
|
|
||||||
phd_se_noso_nosp_nosym: $(memalloc_obj) $(cluster_gen_obj) $(common_sub_obj) $(renormalization_obj) $(phd_se_noso_nosp_nosym_obj)
|
phd_se_noso_nosp_nosym.target: $(memalloc_obj) $(cluster_gen_obj) $(common_sub_obj) $(renormalization_obj) $(phd_se_noso_nosp_nosym_obj)
|
||||||
@echo "building Python binding..."
|
@echo "building Python binding..."
|
||||||
@$(F2PY) $(includes) $^ $(F2PY_OPTS) -c -m $@ phd_se_noso_nosp_nosym/main.f
|
@$(F2PY) $(includes) $^ $(F2PY_OPTS) -c -m $(patsubst %.target, %, $@) phd_se_noso_nosp_nosym/main.f
|
||||||
# @cp $@.cpython*.so ../
|
@touch $@
|
||||||
|
|
||||||
eig_mi: $(memalloc_obj) $(cluster_gen_obj) $(common_sub_obj) $(renormalization_obj) $(eig_common_obj) $(eig_mi_obj)
|
eig_mi.target: $(memalloc_obj) $(cluster_gen_obj) $(common_sub_obj) $(renormalization_obj) $(eig_common_obj) $(eig_mi_obj)
|
||||||
@echo "building Python binding..."
|
@echo "building Python binding..."
|
||||||
@$(F2PY) $(includes) $^ $(F2PY_OPTS) -c -m $@ eig/mi/main.f
|
@$(F2PY) $(includes) $^ $(F2PY_OPTS) -c -m $(patsubst %.target, %, $@) eig/mi/main.f
|
||||||
# @cp $@.cpython*.so ../
|
@touch $@
|
||||||
|
|
||||||
eig_pw: $(memalloc_obj) $(cluster_gen_obj) $(common_sub_obj) $(renormalization_obj) $(eig_common_obj) $(eig_pw_obj)
|
eig_pw.target: $(memalloc_obj) $(cluster_gen_obj) $(common_sub_obj) $(renormalization_obj) $(eig_common_obj) $(eig_pw_obj)
|
||||||
@echo "building Python binding..."
|
@echo "building Python binding..."
|
||||||
@$(F2PY) $(includes) $^ $(F2PY_OPTS) -c -m $@ eig/pw/main.f
|
@$(F2PY) $(includes) $^ $(F2PY_OPTS) -c -m $(patsubst %.target, %, $@) eig/pw/main.f
|
||||||
# @cp $@.cpython*.so ../
|
@touch $@
|
||||||
|
|
||||||
%.o: %.f
|
%.o: %.f
|
||||||
@echo "compiling $@..."
|
@echo "compiling $@..."
|
||||||
|
@ -78,3 +80,4 @@ clean:
|
||||||
@echo "cleaning..."
|
@echo "cleaning..."
|
||||||
@rm -rf *.o *.mod
|
@rm -rf *.o *.mod
|
||||||
@rm -rf $(objects)
|
@rm -rf $(objects)
|
||||||
|
@rm -rf $(libs_targets)
|
||||||
|
|
Loading…
Reference in New Issue