AI4Finance-Foundation / FinRL

FinRL: Financial Reinforcement Learning. 🔥
https://ai4finance.org
MIT License
9.71k stars 2.36k forks source link

Installation of unstable dev version of FinRL using pip in Python 3.12.0 gives error #1132

Open bempt opened 10 months ago

bempt commented 10 months ago

Describe the bug Installation using pip install git+https://github.com/AI4Finance-Foundation/FinRL.git throws an error in Python 3.12.0, Ubuntu 22.04.

Error Message Collecting git+https://github.com/AI4Finance-Foundation/FinRL.git Cloning https://github.com/AI4Finance-Foundation/FinRL.git to /tmp/pip-req-build-argbhxq1 Running command git clone --filter=blob:none --quiet https://github.com/AI4Finance-Foundation/FinRL.git /tmp/pip-req-build-argbhxq1 Resolved https://github.com/AI4Finance-Foundation/FinRL.git to commit 55764e824c2e54686a6af7dba79a9d476aa30259 Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting elegantrl@ git+https://github.com/AI4Finance-Foundation/ElegantRL.git#egg=elegantrl (from finrl==0.3.6) Cloning https://github.com/AI4Finance-Foundation/ElegantRL.git to /tmp/pip-install-u6klkk6g/elegantrl_9e51dc51db044ba4a9a03a78517f1e57 Running command git clone --filter=blob:none --quiet https://github.com/AI4Finance-Foundation/ElegantRL.git /tmp/pip-install-u6klkk6g/elegantrl_9e51dc51db044ba4a9a03a78517f1e57 Resolved https://github.com/AI4Finance-Foundation/ElegantRL.git to commit b4b9d662b9f9cb7cc368ac2b1036b5119eb20be4 Preparing metadata (setup.py) ... done Collecting alpaca-trade-api<4,>=3 (from finrl==0.3.6) Obtaining dependency information for alpaca-trade-api<4,>=3 from https://files.pythonhosted.org/packages/84/5e/4912930d8f64a4a8c425b2a277849cc339a22b2046d3ecd7cbe6743f0021/alpaca_trade_api-3.0.2-py3-none-any.whl.metadata Using cached alpaca_trade_api-3.0.2-py3-none-any.whl.metadata (29 kB) Collecting ccxt<4,>=3 (from finrl==0.3.6) Obtaining dependency information for ccxt<4,>=3 from https://files.pythonhosted.org/packages/c6/c3/5082649cf584dae9ee18d7d90895475e8f382b52e9c8588320f477639e04/ccxt-3.1.60-py2.py3-none-any.whl.metadata Using cached ccxt-3.1.60-py2.py3-none-any.whl.metadata (108 kB) Collecting exchange-calendars<5,>=4 (from finrl==0.3.6) Obtaining dependency information for exchange-calendars<5,>=4 from https://files.pythonhosted.org/packages/79/a8/d7e75932a97e253dd300bb94533af230788f71443353c48c85032f256870/exchange_calendars-4.5-py3-none-any.whl.metadata Using cached exchange_calendars-4.5-py3-none-any.whl.metadata (37 kB) Collecting jqdatasdk<2,>=1 (from finrl==0.3.6) Obtaining dependency information for jqdatasdk<2,>=1 from https://files.pythonhosted.org/packages/7d/1c/bba4af78a19ed7497816dd99cab12f095957e1c0bb6a43b5a7b033be450c/jqdatasdk-1.9.2-py3-none-any.whl.metadata Using cached jqdatasdk-1.9.2-py3-none-any.whl.metadata (5.7 kB) Collecting pyfolio<0.10,>=0.9 (from finrl==0.3.6) Using cached pyfolio-0.9.2.tar.gz (91 kB) Preparing metadata (setup.py) ... error error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [18 lines of output] /tmp/pip-install-u6klkk6g/pyfolio_6df2f6e276fd4bb28b3381609f3c0097/versioneer.py:468: SyntaxWarning: invalid escape sequence '\s' LONG_VERSION_PY['git'] = ''' Traceback (most recent call last): File "", line 2, in File "", line 34, in File "/tmp/pip-install-u6klkk6g/pyfolio_6df2f6e276fd4bb28b3381609f3c0097/setup.py", line 71, in version=versioneer.get_version(), ^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-install-u6klkk6g/pyfolio_6df2f6e276fd4bb28b3381609f3c0097/versioneer.py", line 1407, in get_version return get_versions()["version"] ^^^^^^^^^^^^^^ File "/tmp/pip-install-u6klkk6g/pyfolio_6df2f6e276fd4bb28b3381609f3c0097/versioneer.py", line 1341, in get_versions cfg = get_config_from_root(root) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-install-u6klkk6g/pyfolio_6df2f6e276fd4bb28b3381609f3c0097/versioneer.py", line 399, in get_config_from_root parser = configparser.SafeConfigParser() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: module 'configparser' has no attribute 'SafeConfigParser'. Did you mean: 'RawConfigParser'? [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed

× Encountered error while generating package metadata. ╰─> See above for output.

note: This is an issue with the package mentioned above, not pip. hint: See above for details.

Desktop (please complete the following information):

zhumingpassional commented 10 months ago

pls use git clone

conrado commented 4 months ago

The problem isn't really git clone, but cloning and changing a requirement will help.

pyfolio is no longer maintained, and I would recommend using pyfolio-reloaded instead, which has been updated to run on newer pythons

zhumingpassional commented 4 months ago

@conrado does it work well if using pyfolio-reloaded?

germanamz commented 2 hours ago

I had the same issue on MacOS Sonoma 14.6.1. Switching to python@^3.10 in conda fixed the issue