Jump to content

build_ext


Recommended Posts

Hello, please add support for "build_ext" command in your setup.py for following packages: ftrack-connect, ftrack-connect-pipeline and (probably) qtext.

"python setup.py develop" does not call "build" instead it call "build_ext" so i'm getting not working packages installed. This is important when i use third party tools like Poetry, that create virtual env and install path and url-provided dependencies in development mode.

My root problem is that ftrack-connect is not building at moment as it tries to install "Jinja2 3.0.1a" that is not py2 compatible.

Link to comment
Share on other sites

Hi @Konstantin Maslyuk, this is something I need to double check as I usually go for using pip to install dev versions with :
 

pip install -e <path to repo>

regarding connect there's a branch I'm looking into these days similar to your request:
https://bitbucket.org/ftrack/ftrack-connect/branch/backlog/review-standalone-install

try to give it a go and let me know.
Cheers.

L.

p.s

Jinja 3 is not a requirement of ours, is likely coming as sub dependency of sphinx or something similar.
if you have a chance to pin down the offending module version let me know.
 

Link to comment
Share on other sites

I ask you to add "python setup.py build_ext" command that will execute same command class as build command. This way one will got working package installed in development mode, so less confusion for newcomers and resolve problems with third party tools (poetry in my case).

According to setuptools documentation "build_ext"  is executed during "develop".

The issue with dependencies is something i still investigating, i had attached log, its docker/python:2, but i had such issue on fresh windows host. Some other (not so fresh) environments i have access to resolve dependencies successfully. 

And attached attempt to install from that branch.

jinja2.txt review-standalone-installer.txt

Link to comment
Share on other sites

Hi @Konstantin Maslyuk although not tested, connect should be able to support pyside2 though our QtExt layer, but has not been reviewed for supporting Python 3k atm.

I'll be double checking the build_ext functionality in the above branch, keep monitoring it.

> The rest is fine, i used docker/ubuntu:18.04.

connect is currently tested and built for centos 7 , I've not much of an experience on Ubuntu, so not sure what packages are available and to what version.

for this error:

>    distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('qtext')

please try to downgrade your pip to version 19.3 and try again.

Let us know how it goes.

Cheers.

L.

 

Link to comment
Share on other sites

I had installed ftrack_connect without any issue (but i still have a lot of wheels in pip's cache on my windows host)

Although i expected implementation of build_ext command so i may not encounter ImportError for resource module when installing in development mode. First time i encountered that error i decided that it is a bug. If i:

diff --git a/setup.py b/setup.py
index 39990d9..fbaf6b5 100644
--- a/setup.py
+++ b/setup.py
@@ -261,2 +261,3 @@ configuration = dict(
         'build': Build,
+        'build_ext': Build,
         'build_resources': BuildResources,

Then "pip install -e ./ftrack-connect && python -m ftrack_connect" does not produce an error. It may be proper to implementing resources as setuptools.Extension - i don't know.

build_ext.txt

Link to comment
Share on other sites

@Konstantin Maslyuk I've now made so calling build_ext use the same command as Build hence building the missing resource.py, hope this ease your problem.

This is what I'm doing for testing

  1. create a new virtualenv (I personally use mkvirtualenv wrapper)
  2. activate virtualenv 
  3. go with the shell in the ftrack-connect repo folder and checkout the given branch (and pull)
  4. run to install in editable mode :
    pip install -e .

     

  5. run ftrack-connect :
    ftrack-connect

     

here the versions of the basic moving parts I'm using:

  • python : 2.7.14
  • setuptools : 44.0.0
  • pip: 19.3 (20 works too)

Let us know how it goes.
L.

p.s

should work in docker too, could you share your dockerfile so I can check ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...