SkyTemple / py-desmume

Python Library and GUI for DeSmuME, the Nintendo DS emulator
GNU General Public License v3.0
24 stars 5 forks source link

Need guidance on using setup.py #33

Closed cyndaqua closed 1 year ago

cyndaqua commented 1 year ago

Hi, I would like to use py-desmume but I'm having trouble. Notably, I believe I'm supposed to build desmume, but when I ran setup.py with python setup.py install, it returned an error that it could not find the specified path. Is there a guide on how to set this up? Thanks.

theCapypara commented 1 year ago

Hi! What error do you get? Did you try running pip3 install -vvv? That should output what goes wrong. You probably don't have Visual Studio installed, which is required for building under Windows or you don't have a GCC toolchain if you are building under Linux.

cyndaqua commented 1 year ago

When I run pip3 install -vvv inside of the py-desmume-master, I get this:

C:\Users\cyndaqua\Desktop\DeSmuME\py-desmume-master>pip3 install -vvv Using pip 22.3.1 from C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\lib\site-packages\pip (python 3.10) User install by explicit request Created temporary directory: C:\Users\cyndaqua\AppData\Local\Temp\pip-build-tracker-vhkg8pgv Initialized build tracking at C:\Users\cyndaqua\AppData\Local\Temp\pip-build-tracker-vhkg8pgv Created build tracker: C:\Users\cyndaqua\AppData\Local\Temp\pip-build-tracker-vhkg8pgv Entered build tracker: C:\Users\cyndaqua\AppData\Local\Temp\pip-build-tracker-vhkg8pgv Created temporary directory: C:\Users\cyndaqua\AppData\Local\Temp\pip-install-xok5l3ma ERROR: You must give at least one requirement to install (see "pip help install") Exception information: Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\lib\site-packages\pip\_internal\cli\base_command.py", line 160, in exc_logging_wrapper status = run_func(*args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\lib\site-packages\pip\_internal\cli\req_command.py", line 247, in wrapper return func(self, options, args) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\lib\site-packages\pip\_internal\commands\install.py", line 344, in run reqs = self.get_requirements(args, options, finder, session) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\lib\site-packages\pip\_internal\cli\req_command.py", line 458, in get_requirements raise CommandError( pip._internal.exceptions.CommandError: You must give at least one requirement to install (see "pip help install") Remote version of pip: 22.3.1 Local version of pip: 22.3.1 Was pip installed by pip? True Removed build tracker: 'C:\\Users\\cyndaqua\\AppData\\Local\\Temp\\pip-build-tracker-vhkg8pgv'

I have Visual Studio Community 2019 installed, and have built your fork of DeSmuME by launching the DeSmuME.sln, but the py-desmume said I was missing libdesmume.dll when I tried to execute the code in the quickstart section.

theCapypara commented 1 year ago

Ah sorry pip install -vvv py-desmume of course.

theCapypara commented 1 year ago

If you are trying to run this in editable mode (-e to pip install) you need to build the DLL manually. But unless you want to develop for py-desmume that's not neccesary.

cyndaqua commented 1 year ago

How do I build the dll manually?

On Fri, Dec 30, 2022, 11:24 Marco Köpcke @.***> wrote:

If you are trying to run this in editable mode (-e to pip install) you need to build the DLL manually. But unless you want to develop for py-desmume that's not neccesary.

— Reply to this email directly, view it on GitHub https://github.com/SkyTemple/py-desmume/issues/33#issuecomment-1367994559, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQ7PH4YHOZBWG7DNAJU7T2TWP4ECVANCNFSM6AAAAAATLXE7MM . You are receiving this because you authored the thread.Message ID: @.***>

theCapypara commented 1 year ago

You open the /desmume_src/desmume/src/frontend/interface/DeSmuME_Interface.vcxproj file in Visual Studio and build the "Release" or "Release Fastbuild" config. That outputs the DLL under __bins. You rename that to libdesmume.dll and place it in the /desmume directory. You also copy the SDL2.dll there.

You can also use MSBuild. For reference see https://github.com/SkyTemple/py-desmume/blob/master/setup.py#L121

You can also try forcing the build of the DLL even when using -e by stubbing out this class: https://github.com/SkyTemple/py-desmume/blob/master/setup.py#L58 or setting the value in it to False, etc.

cyndaqua commented 1 year ago

Thanks, that worked.