AcademySoftwareFoundation / OpenCue

A render management system you can deploy for visual effects and animation productions.
https://www.opencue.io
Apache License 2.0
815 stars 193 forks source link

cuegui not building #582

Closed nod0ubt closed 4 years ago

nod0ubt commented 4 years ago

Describe the bug Cuegui doesn't build on latest release. Running python setup.py install produces error:

/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'long_description_content_type'
  warnings.warn(msg)
running install
running bdist_egg
running egg_info
writing cuegui.egg-info/PKG-INFO
writing top-level names to cuegui.egg-info/top_level.txt
writing dependency_links to cuegui.egg-info/dependency_links.txt
writing entry points to cuegui.egg-info/entry_points.txt
reading manifest file 'cuegui.egg-info/SOURCES.txt'
writing manifest file 'cuegui.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/cuegui
copying cuegui/ProcMonitor.py -> build/lib/cuegui
copying cuegui/ShowDialog.py -> build/lib/cuegui
copying cuegui/LayerMonitorTree.py -> build/lib/cuegui
copying cuegui/ProgressDialog.py -> build/lib/cuegui
copying cuegui/Utils.py -> build/lib/cuegui
copying cuegui/Cuedepend.py -> build/lib/cuegui
copying cuegui/Constants.py -> build/lib/cuegui
copying cuegui/Logger.py -> build/lib/cuegui
copying cuegui/ItemDelegate.py -> build/lib/cuegui
copying cuegui/ConfirmationDialog.py -> build/lib/cuegui
copying cuegui/TagsWidget.py -> build/lib/cuegui
copying cuegui/SplashWindow.py -> build/lib/cuegui
copying cuegui/FrameRangeSelection.py -> build/lib/cuegui
copying cuegui/MenuActions.py -> build/lib/cuegui
copying cuegui/Action.py -> build/lib/cuegui
copying cuegui/PreviewWidget.py -> build/lib/cuegui
copying cuegui/LimitSelectionWidget.py -> build/lib/cuegui
copying cuegui/LayerDialog.py -> build/lib/cuegui
copying cuegui/AbstractTreeWidget.py -> build/lib/cuegui
copying cuegui/__main__.py -> build/lib/cuegui
copying cuegui/TasksDialog.py -> build/lib/cuegui
copying cuegui/MiscDialog.py -> build/lib/cuegui
copying cuegui/FilterDialog.py -> build/lib/cuegui
copying cuegui/EmailDialog.py -> build/lib/cuegui
copying cuegui/JobMonitorTree.py -> build/lib/cuegui
copying cuegui/__init__.py -> build/lib/cuegui
copying cuegui/Comments.py -> build/lib/cuegui
copying cuegui/AbstractDialog.py -> build/lib/cuegui
copying cuegui/DependWizard.py -> build/lib/cuegui
copying cuegui/HostMonitor.py -> build/lib/cuegui
copying cuegui/ServiceDialog.py -> build/lib/cuegui
copying cuegui/Redirect.py -> build/lib/cuegui
copying cuegui/BugReportDialog.py -> build/lib/cuegui
copying cuegui/ApplicationConfig.py -> build/lib/cuegui
copying cuegui/FrameMonitor.py -> build/lib/cuegui
copying cuegui/ShowsWidget.py -> build/lib/cuegui
copying cuegui/GroupDialog.py -> build/lib/cuegui
copying cuegui/DependDialog.py -> build/lib/cuegui
copying cuegui/eta.py -> build/lib/cuegui
copying cuegui/CueStateBarWidget.py -> build/lib/cuegui
copying cuegui/MainWindow.py -> build/lib/cuegui
copying cuegui/Style.py -> build/lib/cuegui
copying cuegui/Plugins.py -> build/lib/cuegui
copying cuegui/CueJobMonitorTree.py -> build/lib/cuegui
copying cuegui/UnbookDialog.py -> build/lib/cuegui
copying cuegui/LimitsWidget.py -> build/lib/cuegui
copying cuegui/Main.py -> build/lib/cuegui
copying cuegui/CreatorDialog.py -> build/lib/cuegui
copying cuegui/ProcMonitorTree.py -> build/lib/cuegui
copying cuegui/LocalBooking.py -> build/lib/cuegui
copying cuegui/HostMonitorTree.py -> build/lib/cuegui
copying cuegui/DependMonitorTree.py -> build/lib/cuegui
copying cuegui/FrameMonitorTree.py -> build/lib/cuegui
copying cuegui/AbstractWidgetItem.py -> build/lib/cuegui
copying cuegui/TextEditDialog.py -> build/lib/cuegui
copying cuegui/GraphSubscriptionsWidget.py -> build/lib/cuegui
copying cuegui/AbstractDockWidget.py -> build/lib/cuegui
copying cuegui/SubscriptionsWidget.py -> build/lib/cuegui
copying cuegui/DarkPalette.py -> build/lib/cuegui
copying cuegui/ThreadPool.py -> build/lib/cuegui
creating build/lib/tests
copying tests/FrameMonitorTree_tests.py -> build/lib/tests
copying tests/__init__.py -> build/lib/tests
copying tests/MenuActions_tests.py -> build/lib/tests
copying tests/test_utils.py -> build/lib/tests
creating build/lib/cuegui/plugins
copying cuegui/plugins/RedirectPlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/ServicePlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/__init__.py -> build/lib/cuegui/plugins
copying cuegui/plugins/ShowsPlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/MonitorJobDetailsPlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/LimitsPlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/MonitorJobsPlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/LogViewPlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/AttributesPlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/MonitorHostsPlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/SubscriptionsPlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/AllocationsPlugin.py -> build/lib/cuegui/plugins
copying cuegui/plugins/MonitorCuePlugin.py -> build/lib/cuegui/plugins
creating build/lib/cuegui/images
copying cuegui/images/__init__.py -> build/lib/cuegui/images
copying cuegui/images/icons_rcc.py -> build/lib/cuegui/images
creating build/lib/tests/plugins
copying tests/plugins/LogViewPlugin_tests.py -> build/lib/tests/plugins
copying tests/plugins/__init__.py -> build/lib/tests/plugins
creating build/lib/cuegui/images/bluecurve
copying cuegui/images/bluecurve/__init__.py -> build/lib/cuegui/images/bluecurve
copying cuegui/images/bluecurve/icons_rcc.py -> build/lib/cuegui/images/bluecurve
creating build/lib/cuegui/images/crystal
copying cuegui/images/crystal/__init__.py -> build/lib/cuegui/images/crystal
copying cuegui/images/crystal/icons_rcc.py -> build/lib/cuegui/images/crystal
creating build/lib/cuegui/config
copying cuegui/config/darkpalette.qss -> build/lib/cuegui/config
copying cuegui/config/cuetopia.ini -> build/lib/cuegui/config
copying cuegui/config/gvimrc -> build/lib/cuegui/config
copying cuegui/config/rqlog.vim -> build/lib/cuegui/config
copying cuegui/config/cue_resources.yaml -> build/lib/cuegui/config
copying cuegui/config/cuecommander.ini -> build/lib/cuegui/config
error: can't copy 'cuegui/images/bluecurve': doesn't exist or not a regular file

To Reproduce Steps to reproduce the behavior:

  1. Install pycue
  2. Install pyoutline
  3. Try installing cuegui

All of above are done according to the guide.

edit: I'm not using virtualenv.

Expected behavior

Successful build of cuegui

Version Number 0.3.6

bcipriano commented 4 years ago

Thanks for the report!

I gave a quick try to double-check, and I'm not able to reproduce this behavior -- the build/install runs fine for me. Though I'm running on macOS in a virtualenv, so there are some environment differences here.

Couple things to check:

Thanks!

nod0ubt commented 4 years ago

Hi Brian and sorry for posting here. Found out afterwards that you've migrated on ASWF mailing lists.

bcipriano commented 4 years ago

No worries, it's perfectly alright to file github issues and we're happy to discuss things here.

It's hard to debug further from here since I can't reproduce, but my best guess is this is due to an older version of setuptools in your system setup.

Here's the version from my virtualenv:

$ python -c "import setuptools; print(setuptools.__version__)"
40.8.0

Which version are you running?

nod0ubt commented 4 years ago

Within venv

python -c "import setuptools; print(setuptools.__version__)"
28.8.0

It's a bit older I guess.

And that's 'outside' virtualenv on the system:

python -c "import setuptools; print(setuptools.__version__)"
0.9.8
bcipriano commented 4 years ago

That version of setuptools looks like it's about six years old... that may be our culprit.

You could try to create a new virtualenv with --no-setuptools, then manually install 0.9.8 in the venv like pip install setuptools==0.9.8. That might help confirm if that's the true cause.

Curious, what distro/version are you running?

bcipriano commented 4 years ago

Just tried this locally and was able to reproduce the problem:

cd opencue/
virtualenv venv-test --no-setuptools
source venv-test/bin/activate
pip install setuptools==0.9.8
pip install -r requirements.txt
pip install -r requirements_gui.txt
pycue
python setup.py install
cd ../pyoutline
python setup.py install
cd ../cuegui/
python setup.py install
<cut>
error: can't copy 'cuegui/images/crystal': doesn't exist or not a regular file

So the problem does appear to be due to old setuptools. Not sure there's much we can do about that unfortunately, it's a very old version so I doubt we'll be able to support it.

Curious, what distro/version are you running?

This question still stands -- I'm wondering if there's a distro out there with default python/setuptools that OpenCue breaks on.

bcipriano commented 4 years ago

Closing this as we've identified the problem. If we find others keep running into this we can reopen.

Aanerud commented 4 years ago

I just bumped into this problem on a CentOS 7.5 RenderBlade. I solved it by running pip install setuptools==40.8.0

bcipriano commented 4 years ago

Semi-related, I also recently had to upgrade setuptools within our RQD Docker to accommodate the new platform_system notation we're using to install Windows-only dependencies.