scottrice / Ice

Application to automatically add ROMs to Steam
http://scottrice.github.io/Ice/
MIT License
837 stars 96 forks source link

An exception occurred while running Ice (linux) #427

Open tristan-k opened 7 years ago

tristan-k commented 7 years ago

I'm running Ubuntu 16.04. Here is what I did to install Ice. Virtualenv installation went well.

$ git clone https://github.com/scottrice/Ice
$ virtualenv Ice
$ source bin/activate
$ python setup.py install

Configured config.txt, consoles.txt and emulators.txt following the Getting Started Guide.

Finally:

$ python -m ice   
[ERROR] An exception occurred while running Ice
Traceback (most recent call last):
  File "ice/decorators.py", line 10, in wrapped
    func(*args, **kwargs)
  File "ice/cli/runner.py", line 84, in run
    self.get_steam(app_settings.config),
  File "ice/tasks/engine.py", line 27, in __init__
    self.users = filter(is_user_context, steam_module.local_user_contexts(self.steam))
TypeError: 'NoneType' object is not iterable

Close the window, or hit enter to exit...

Any suggestions?

Rohaq commented 7 years ago

Same here. From the logs:

[12/10/16 15:21:54] =========================Starting Ice
[12/10/16 15:21:54] Emulator '' not found for Nintendo DS. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Super Nintendo. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Playstation 2. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Playstation 1. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Nintendo Entertainment System. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Sega Dreamcast. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Gameboy Advance. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Sega Genesis. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Nintendo Gamecube. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Nintendo 64. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Nintendo Wii. Ignoring
[12/10/16 15:21:54] Emulator '' not found for Nintendo Gameboy. Ignoring
[12/10/16 15:21:54] ---------------Running for user 12492858
[12/10/16 15:21:54] ####################################
[12/10/16 15:21:54] An Error has occurred:
[12/10/16 15:21:54] 'NoneType' object is not iterable
Traceback (most recent call last):
  File "<string>", line 45, in <module>
  File "<string>", line 31, in main
  File "c:\Users\Scott.Scott-PC\Development\Projects\Ice\build\ice\out00-PYZ.pyz\ice.rom_manager", line 39, in __init__
TypeError: 'NoneType' object is not iterable
[12/10/16 15:21:54] ####################################
[12/10/16 15:24:54] =========================Starting Ice
[12/10/16 15:24:54] Emulator '' not found for Nintendo DS. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Super Nintendo. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Playstation 2. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Playstation 1. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Nintendo Entertainment System. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Sega Dreamcast. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Gameboy Advance. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Sega Genesis. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Nintendo Gamecube. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Nintendo 64. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Nintendo Wii. Ignoring
[12/10/16 15:24:54] Emulator '' not found for Nintendo Gameboy. Ignoring
[12/10/16 15:24:54] ---------------Running for user 12492858
[12/10/16 15:24:54] ####################################
[12/10/16 15:24:54] An Error has occurred:
[12/10/16 15:24:54] 'NoneType' object is not iterable
Traceback (most recent call last):
  File "<string>", line 45, in <module>
  File "<string>", line 31, in main
  File "c:\Users\Scott.Scott-PC\Development\Projects\Ice\build\ice\out00-PYZ.pyz\ice.rom_manager", line 39, in __init__
TypeError: 'NoneType' object is not iterable
[12/10/16 15:24:54] ####################################
tristan-k commented 7 years ago

@Rohaq Guessing from your path c:\Users\Scott.Scott-PC\Development\Projects\Ice\build\ice\out00. It looks like you are using Windows. This is a issue tied to Linux (Ubuntu).

I'm investigating right now. The error is gone if I symlink to the new steam directory, but no roms are added.

$ ln -s ~/.steam/steam/userdata ~/.local/share/Steam/userdata
$ python -m ice -d  
=========== Starting Ice ===========
Detected Emulator: RetroArch Super Nintendo
Detected Emulator: RetroArch Nintendo DS
Detected Emulator: RetroArch Nintendo
Detected Emulator: RetroArch Gameboy Advance
Detected Emulator: RetroArch Sega Genesis
Detected Emulator: RetroArch Nintendo 64
Detected Emulator: RetroArch Sony Playstation
Detected Emulator: RetroArch Sony Playstation Portable
===== Running for users: XXXXX =====
::Syncing Shortcuts for U:XXXXX
::Updating grid images for U:XXXXX

Close the window, or hit enter to exit..
tristan-k commented 7 years ago

Yeah, it seems linux support is utterly broken. I'm giving up. @mdeguzis fork somehow vanished. According to a recent reddit post, that fork has not been updated for a while. Maybe someone can chime in?

Related to https://github.com/scottrice/Ice/issues/306 and https://github.com/scottrice/Ice/issues/335

$ cat /home/user/.config/ice/ice.log     
2016-12-10 17:58:43,379 [DEBUG][rom_parser.py][__init__:18]: Creating ROM parser with regexes: [u'(?P<name>[^\\(\\)\\[\\]]*).*']
2016-12-10 17:58:43,379 [DEBUG][settings.py][load_emulators:50]: Loading emulators from path: /opt/Ice/emulators.txt
2016-12-10 17:58:43,380 [DEBUG][settings.py][load_configuration:45]: Loading config from path: /opt/Ice/config.txt
2016-12-10 17:58:43,380 [DEBUG][settings.py][load_consoles:58]: Loading consoles from path: /opt/Ice/consoles.txt
2016-12-10 17:58:43,383 [DEBUG][engine.py][__init__:23]: Initializing Ice
2016-12-10 17:58:43,383 [INFO][engine.py][run:34]: =========== Starting Ice ===========
2016-12-10 17:58:43,401 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Nintendo Entertainment System`
2016-12-10 17:58:43,401 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Super Nintendo`
2016-12-10 17:58:43,401 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Nintendo 64`
2016-12-10 17:58:43,401 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Nintendo Gamecube`
2016-12-10 17:58:43,401 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Nintendo Wii`
2016-12-10 17:58:43,401 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Playstation 1`
2016-12-10 17:58:43,402 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Playstation 2`
2016-12-10 17:58:43,402 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Sega Genesis`
2016-12-10 17:58:43,402 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Sega Dreamcast`
2016-12-10 17:58:43,402 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Nintendo Gameboy`
2016-12-10 17:58:43,402 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Gameboy Advance`
2016-12-10 17:58:43,402 [DEBUG][console_adapter.py][verify:41]: No emulator provided for console `Nintendo DS`
2016-12-10 17:58:43,402 [INFO][logging.py][__call__:12]: Detected Emulator: RetroArch Super Nintendo
2016-12-10 17:58:43,403 [INFO][logging.py][__call__:12]: Detected Emulator: RetroArch Nintendo DS
2016-12-10 17:58:43,403 [INFO][logging.py][__call__:12]: Detected Emulator: RetroArch Nintendo
2016-12-10 17:58:43,403 [INFO][logging.py][__call__:12]: Detected Emulator: RetroArch Gameboy Advance
2016-12-10 17:58:43,403 [INFO][logging.py][__call__:12]: Detected Emulator: RetroArch Sega Genesis
2016-12-10 17:58:43,403 [INFO][logging.py][__call__:12]: Detected Emulator: RetroArch Nintendo 64
2016-12-10 17:58:43,403 [INFO][logging.py][__call__:12]: Detected Emulator: RetroArch Sony Playstation
2016-12-10 17:58:43,403 [INFO][logging.py][__call__:12]: Detected Emulator: RetroArch Sony Playstation Portable
2016-12-10 17:58:43,403 [INFO][logging.py][__call__:22]: ===== Running for users: 50704 =====
2016-12-10 17:58:43,403 [DEBUG][shortcuts.py][__call__:26]: Not creating backup because its a dry run
2016-12-10 17:58:43,404 [INFO][shortcuts.py][__call__:31]: ::Syncing Shortcuts for U:50704
2016-12-10 17:58:43,404 [DEBUG][steam_shortcut_synchronizer.py][sync_roms_for_user:75]: Previous managed ids: []
2016-12-10 17:58:43,404 [DEBUG][steam_shortcut_synchronizer.py][sync_roms_for_user:78]: Unmanaged shortcuts: []
2016-12-10 17:58:43,404 [DEBUG][steam_shortcut_synchronizer.py][sync_roms_for_user:80]: Current Ice shortcuts: []
2016-12-10 17:58:43,404 [DEBUG][steam_shortcut_synchronizer.py][sync_roms_for_user:92]: Sync Result: []
2016-12-10 17:58:43,404 [DEBUG][steam_shortcut_synchronizer.py][sync_roms_for_user:95]: Not saving or updating history due to dry run
2016-12-10 17:58:43,404 [DEBUG][settings.py][image_provider:80]: Creating with component providers: [<ice.gridproviders.local_provider.LocalProvider object at 0x7f35e96f77d0>, <ice.gridproviders.consolegrid_provider.ConsoleGridProvider object at 0x7f35e96f7910>]
2016-12-10 17:58:43,404 [INFO][grid.py][__call__:23]: ::Updating grid images for U:50704
mdeguzis commented 7 years ago

I have not vanished, just busy with this and that. I haven't seen updates from Scott in a long while. What makes things a little more tough, is I just got a new job as a systems engineer, which will take up time. Plus (and due to my job as well) I need to brush up on python/java. Just not a good time right now.

Rohaq commented 7 years ago

Ah, you were right: It just errors out if you don't fill out your emulators properly :)

burdenc commented 7 years ago

Steam recently (?) changed their userdata install location on Linux from ~/.local/share/Steam/userdata to ~/.steam/steam/userdata. So this is a problem with pysteam not finding the Steam config files. I'm submitting a pull request to fix it.

PR: https://github.com/scottrice/pysteam/pull/11 Not sure if this will completely fix Ice on Linux though. I only ran into this problem when trying to use pysteam for my own project.

ghost commented 7 years ago

While we're waiting for the pull request to go through here's a workaround:

mkdir -p ~/.local/share/Steam/ ln -s ~/.steam/steam/userdata ~/.local/share/Steam/userdata python -m ice -- get some message about permissions mkdir -p ~/.local/share/Steam/userdata/xxxxxxx/config/grid

mdeguzis commented 7 years ago

@scottrice hasn't update this repo in quite a long time. I don't mind helping, as I am getting more experience with Python due to dev/ops work I now perform in my day job (Hadoop cluster). Scott, if you see this, can you add me as a member/collaborator to this project and pysteam? Otherwise, I can fork and try to continue this project.

mdeguzis commented 7 years ago

@tristan-k , I can refork and try to continue this project (hopefully with some help as well). I want to give scott a few days to see if he sees the above post so all history can be retained. If he does not by the end of the week/weekend, I will fork and forget ahead best I can. I think this project still has a lot of merit. Scott now appears to work at Facebook, which likely zaps a lot of his time. I am quite busy as well, but I can spare pockets of time on weekends to try and help.

mdeguzis commented 7 years ago

Ok, haven't really heard from Scott Rice. I'll fork and try to see what I can do.