adamerose / PandasGUI

A GUI for Pandas DataFrames
MIT No Attribution
3.17k stars 229 forks source link

Installation on Windows fails to install win32api #172

Closed jmartens closed 2 years ago

jmartens commented 2 years ago

Describe the bug
Installation on Windows does not install all required packages, it seems to be missing win32api.

When running the following simple code fragment:

from pandasgui import show

I get the following exception:

Traceback (most recent call last):
  File "C:\Users\admin.jonathan\Documents\tx-records\venv3.9\lib\site-packages\IPython\core\interactiveshell.py", line 3441, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-6-488ae1300181>", line 1, in <module>
    from pandasgui import show
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2020.3.4\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\admin.jonathan\Documents\tx-records\venv3.9\lib\site-packages\pandasgui\__init__.py", line 15, in <module>
    from pandasgui.gui import show
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2020.3.4\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\admin.jonathan\Documents\tx-records\venv3.9\lib\site-packages\pandasgui\gui.py", line 17, in <module>
    from pandasgui.widgets.navigator import Navigator
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2020.3.4\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\admin.jonathan\Documents\tx-records\venv3.9\lib\site-packages\pandasgui\widgets\navigator.py", line 18, in <module>
    import win32api
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2020.3.4\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'win32api'

Package seems not installed since the output of pip list | Select-String -Pattern "pywin32" is empty

When I explicitly install it manually it seems to work OK:

pip list | Select-String -Pattern "pywin32"

pywin32                           301

from pandasgui import show

Environment OS: Windows Server 2019 10.0 (See PyCharm output) Python:

sys.version
'3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)]'

IDE: PyCharm

PyCharm 2021.2 (Community Edition)
Build #PC-212.4746.96, built on July 27, 2021
Runtime version: 11.0.11+9-b1504.13 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows Server 2019 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 1024M
Cores: 2
Non-Bundled Plugins: com.andrey4623.rainbowcsv (2.0), com.chesterccw.excelreader (2.0.0), net.seesharpsoft.intellij.plugins.csv (2.17.1), org.sonarlint.idea (5.2.0.35150), ru.meanmail.plugin.requirements (2021.4.1-212), com.intellij.ideolog (203.0.27.0)

Package versions
Windows does not have bash, but this should yield the equivalent:

 pip list | Select-String -Pattern "pyqt|pandasgui|plotly|ipython|jupyter|notebook"

ipython                           7.27.0
pandasgui                         0.2.13
plotly                            5.3.1
PyQt5                             5.15.4
PyQt5-Qt5                         5.15.2
PyQt5-sip                         12.9.0
PyQtWebEngine                     5.15.4
PyQtWebEngine-Qt5                 5.15.2
jmartens commented 2 years ago

Perhaps the solution can be as simple as adding the following to requirements.txt:

pywin32; platform_system=="Windows"

following the Environment Markers section in PEP 508.