netinvent / windows_tools

Collection of various interfaces for Windows functionality in a Pythonic way
BSD 3-Clause "New" or "Revised" License
63 stars 15 forks source link

Cannot install the current project state from source #10

Closed negativeproton closed 1 year ago

negativeproton commented 1 year ago

Installing the lastest release (v2.3.0) via pip worked flawlessly :) But it being from Oct 11, 2021, it doesn't include a lot of the improvements. So I tried (with user and admin rights respectively) to install the current project state using pip and setup.py.

system/software info

OS

OS Name: Microsoft Windows 11 Enterprise Evaluation Version: 10.0.22621 Build 22621 using the VirtualBox dev vm version one can freely download from Microsoft: https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/

python

Python 3.10.10 (tags/v3.10.10:aad5f6a, Feb 7 2023, 17:20:36) [MSC v.1929 64 bit (AMD64)] on win32 pip 23.1.2 from C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\pip (python 3.10)

via pip in 3 different ways

download the currect master branch state and call on .zip file

pip install .\wintools.zip

inside the extracted zip

pip install .

download directly from github

python -m pip install git+https://github.com/netinvent/windows_tools.git@master

same result for all 3 ways:

File "C:\Users\User\AppData\Local\Temp\pip-build-env-8drvjp5x\overlay\Lib\site-packages\setuptools\build_meta.py", line 364, in _find_info_directory
          assert len(candidates) == 1, f"Multiple {suffix} directories found"
"AssertionError: Multiple .egg-info directories found"

(these directories are located in the root dir of the project)

research

regarding this problem, I found this: https://github.com/pypa/pip/issues/8201 TL;DR, seems like the blame is put on the setup.py file, creating more than on project

via .\setup.py

  1. python.exe .\setup.py clean

  2. python.exe .\setup.py build

  3. python.exe .\setup.py install

  4. and 2. run without error

  5. quits with "creating build\bdist.win-amd64\egg error: could not create 'build\bdist.win-amd64\egg': The system cannot find the path specified"

(creating the dir manually still results in the error/doesn't make the program continue after this step as well)

What I tried to research:

Reading https://github.com/pypa/pip/issues/8201, I looked at the diff between the setup.py from the lastest release and the one from the current state, but couldn't determine a cause of the problem, I lack the knowledge/background.

If further information is needed, I'm more than welcome to help. :)

deajan commented 1 year ago

Thanks for this excellent bug report. Actually, since windows_tools is a namespace package, I modded setup.py to create all subpackages. Of course, you wouldn't want python -m pip install windows_tools to install all subpackages.

In order to install whatever subpackage you want from latest git master, you can do the following:

<clone the git and cd into the git directory>
python.exe -m pip install wheel
python.exe setup.py bdist_wheel
python.exe -m pip install dist/windows_tools.registry-1.0.1-py3-none-any.whl
negativeproton commented 1 year ago

(The system got resetted to rule out all left over artifacts from previous installation attempts)

Thank you very much for the swift and nice response :D

using this method, it installs without error :)