Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maintenance: latest deadline compatability issue #504

Closed
embassytech opened this issue Dec 10, 2024 · 7 comments
Closed

Maintenance: latest deadline compatability issue #504

embassytech opened this issue Dec 10, 2024 · 7 comments
Labels
question Further information is requested

Comments

@embassytech
Copy link

Description

Hi, I just did a pip install --upgrade for the latest deadline-cloud boto3 and the various dcc submitter projects.

Unfortunately, I was surprised to discover the latest version of this package is not compatible with all those.

$ pip install --upgrade deadline ... Using cached deadline-0.49.3-py3-none-any.whl (249 kB) Installing collected packages: deadline Attempting uninstall: deadline Found existing installation: deadline 0.48.9 Uninstalling deadline-0.48.9: Successfully uninstalled deadline-0.48.9 ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. deadline-cloud-worker-agent 0.27.4 requires deadline==0.48.*, but you have deadline 0.49.3 which is incompatible. Successfully installed deadline-0.49.3

Will there be a new release of this that is shortly?
Sorry for the duplicate issue.

thanks.

Solution

release a version that supports deadline-clound 0.49.*

@moorec-aws
Copy link
Contributor

It can be possible from time to time that our dependencies are out of sync. To help with issue we can utilize python virtual environment. Without virtual environments, Python packages get installed into a global package site on the host. Each time you pip install ... a Python distributable (e.g. our DCC adaptors) into the global namespace, there is a chance of encountering a version conflict between the distributable's transitive dependencies and the dependencies of previously installed distributable. By installing each DCC into its own python environment these dependency conflicts can be avoided.

Here is an example on how to achieve this setup:

python -m venv /opt/deadline/deadline-cloud-for-maya
source /opt/deadline/deadline-cloud-for-maya/bin/activate
pip install deadline-cloud-for-maya
exit

Now to access the binaries of the environment you will need to add the bin directory to PATH.

To do this use your preferred method for setting PATH such as .bashrc or .profile

export PATH=/opt/deadline/deadline-cloud-for-maya/bin:$PATH

Now the Adaptor is accessible from the venv installation:

MayaAdaptor --help

@embassytech
Copy link
Author

embassytech commented Dec 11, 2024 via email

@jusiskin
Copy link
Contributor

Could it be that this project doesnt actually require deadline-cloud
0.49... it just hasn't been looked at for awhile so as to update its
requirements numbers?

This is not the case. The worker agent does depend on deadline for syncing input/output job attachments.

Rather than make use of the latest greatest everywhere in my virtual env, I
had to roll back all other projects to the least common denominator...
which is this project...

I think the issue here is using a combined virtual environment for the worker agent and the other DCC adaptors. If each adaptor has a distinct virtual environment, the dependency closures for each application become isolated from one another and you no longer have to worry about conflicts. Have you considered creating a dedicated virtual environment per-DCC-adaptor as suggested by @moorec-aws above?

@jusiskin jusiskin added the question Further information is requested label Dec 12, 2024
@embassytech
Copy link
Author

embassytech commented Dec 12, 2024 via email

@jusiskin
Copy link
Contributor

No problem, @embassytech and thanks for reaching out.

The worker agent's pinned dependency version of deadline has been updated to 0.49.* merged into the mainline (#485), so it is just pending a release. We try our best to release regularly. I will post updates here once that is released.

To avoid this same issue coming up again in the future I'd recommend de-coupling virtual environments between Python applications.

Best regards!

@jusiskin
Copy link
Contributor

Hi @embassytech,

The worker agent version 0.27.5 was released on Dec 14 which supports deadline versions 0.49.*.

I am closing this issue now. Please feel free to re-open if you have any questions or need further clarity.

Thanks!

@embassytech
Copy link
Author

embassytech commented Dec 18, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants