antoinecarme / pyaf

PyAF is an Open Source Python library for Automatic Time Series Forecasting built on top of popular pydata modules.
BSD 3-Clause "New" or "Revised" License
458 stars 73 forks source link

[Bug] Editable Install Doesn't Work #91

Closed jmabry closed 4 years ago

jmabry commented 6 years ago

I wanted to be able to edit the source code in the git repo. I think that b/c of the directory re-arrangement/copying that occurs in the setup.py file, I run into the same issue reported in https://github.com/pypa/pip/issues/3160 when I try to install the package in "editable" mode using pip. To reproduce, I think it should be sufficient to run

$ cd $ pip install scipy pandas sklearn matplotlib pydot dill pathos sqlalchemy $ pip install -e .

Here is the config info you request.

(ppyaf2) 43669@PALMAC-43669-1:~/github_repos/pyaf$ python tests/basic_checks/platform_info.py PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('matplotlib_version', '2.2.2') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('numpy_version', '1.14.3') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('pandas_version', '0.23.0') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('pydot_version', '1.2.4') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('python_implementation', 'CPython') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('python_version', '3.6.5') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('scipy_version', '1.1.0') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('sklearn_version', '0.19.1') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('sqlalchemy_version', '1.2.8') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('system_platform', 'Darwin-17.4.0-x86_64-i386-64bit') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('system_processor', 'i386') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('system_uname', uname_result(system='Darwin', node='PALMAC-43669-1', release='17.4.0', version='Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64', machine='x86_64', processor='i386')) PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('Apple_PubSub_Socket_Render', '/private/tmp/com.apple.launchd.DpcSx9bgnb/Render') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('CLICOLOR', '1') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('COLORFGBG', '15;0') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('COLORTERM', 'truecolor') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('CONDA_DEFAULT_ENV', 'ppyaf2') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('CONDA_EXE', '/Users/43669/miniconda3/bin/conda') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('CONDA_PREFIX', '/Users/43669/miniconda3/envs/ppyaf2') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('CONDA_PROMPT_MODIFIER', '(ppyaf2) ') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('CONDA_PYTHON_EXE', '/Users/43669/miniconda3/bin/python') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('CONDA_SHLVL', '1') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('HOME', '/Users/43669') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('ITERM_PROFILE', 'Default') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('ITERM_SESSION_ID', 'w1t0p0:BEDBB3C6-B388-4355-BDFB-C6A77291C9C5') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('LANG', 'en_US.UTF-8') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('LOGNAME', '43669') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('OLDPWD', '/Users/43669') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PATH', '/Users/43669/miniconda3/envs/ppyaf2/bin:/Users/43669/bin:/Users/43669/anaconda3/bin:/Users/43669/bin:/Users/43669/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PS1', '(ppyaf2) \[\e[0;33m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ ') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PWD', '/Users/43669/github_repos/pyaf') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('SHELL', '/bin/bash') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('SHLVL', '1') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('SSH_AUTH_SOCK', '/private/tmp/com.apple.launchd.LcWha1Gy3G/Listeners') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('TERM', 'xterm-color') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('TERM_PROGRAM', 'iTerm.app') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('TERM_PROGRAM_VERSION', '3.1.6') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('TERM_SESSION_ID', 'w1t0p0:BEDBB3C6-B388-4355-BDFB-C6A77291C9C5') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('TMPDIR', '/var/folders/3j/dbjrf73j25bd75_97_nc2tgrf5nf71/T/') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('USER', '43669') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('XPC_FLAGS', '0x0') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('XPC_SERVICE_NAME', '0') PYAF_SYSTEM_DEPENDENT_ENVIRONMENTVARIABLE ('', '/Users/43669/miniconda3/envs/ppyaf2/bin/python') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('__CF_USER_TEXT_ENCODING', '0x0:0:0')

antoinecarme commented 6 years ago

@jmabry

Thanks for the report.

First, I am not an export when it comes to installing software on python (=> directory reorg ;). If you have a fix, it is welcome.

I tried the three steps you described above on a freshly installed debian/virtualbox, Got no error.

Can you please copy-paste the error message you got ?

jmabry commented 6 years ago

(pyaf2) 43669@PALMAC-43669-1:~/github_repos/pyaf$ python tests/hierarchical/test_grouped.py
Traceback (most recent call last):
  File "tests/hierarchical/test_grouped.py", line 3, in <module>
    import pyaf.HierarchicalForecastEngine as hautof
ModuleNotFoundError: No module named 'pyaf'

Here is what I did to install. Note I am using conda, which may be the reason it is failing.

 conda create -n pyaf2
 conda activate pyaf2
 pip install scipy pandas sklearn matplotlib pydot dill pathos sqlalchemy
 git clean -dxf
 pip install -e .

Note pip thinks the install is successful

Installing collected packages: pyaf
  Running setup.py develop for pyaf
Successfully installed pyaf
antoinecarme commented 6 years ago
  1. Sorry. I cannot offer any kind of support for conda and the like. Good Old python on any platform is welcome.

  2. Seems that you are trying a sophisticated setup that is intended for developers. Please don't use setup.py for this purpose and create your own starting from the git repository. Can you please tell me more about what you intend to do (private email is available in the headers) ?

jmabry commented 6 years ago

Just to be clear, this isn't a conda specific issue. I added some comments to the PR to help cut through the noise generated by moving so many files. I will reach out via email for additional discussion.

antoinecarme commented 6 years ago

This is rather a developer feature (to simplify developer's life ;). I cannot be sure that this PR will not break existing end user features.

@jmabry : Your fix is good. I will keep this change for later when a full refactoring of the setup/install code is performed.

antoinecarme commented 4 years ago

Fixed in release 1.2