Possible to run EE functions from another Python script?


#1

I’d like to run EE CLI functions through another Python script. I’m currently accomplishing this with Pexpect.

However, considering that EE is written in Python I should think this is only necessary at this point due to my lack of knowledge and level of skill in Python - because it seems a rather silly way to do it!

It looks like the way to create sites would be through ee.cli.plugins.site_functions.py. I’ll first try to port to my script the way ee.cli.plugins.site.py utilizes the site_functions.py. I’m not sure what the best methods will be or how to pass the data in a way that it will work. For that matter, I’m not entirely sure how to import the EE functions into my script… but I suppose that’s what StackOverflow is for. :wink:

Any thoughts or pointers would be very helpful!


#2

Also, just noticed EE is on Python 3, whereas I’m developing in Python2.

I’m guessing EE isn’t Python 2.7 compatible, and I should write my code for Python 3?


#3

Update: Code rewritten for Python 3. Unsure of how to utilize the EE functions, now, though.


#4

Hi…

You can use EasyEngine functions in your python3 code. :slight_smile:

Note that: Some EasyEngine functions requires object of Cement App, as all EasyEngine sub commands are written as Cement plugins.

You can use http://builtoncement.com/2.4/ this cement doc for reference.


#5

Thanks! But that doc link just brings me to the main page of the Cement docs - which I’ve already been to many a time. Is there a specific page that references what I’m trying to accomplish?

I’ve been through the EE code a bit and I can see where everything happens, but I’m not sure how to properly call or initialize things since it goes through cement.


#6

Hello, You can start with http://builtoncement.com/2.4/dev/quickstart.html docs. Where you will get creation of cement app object. Using that app object you can use any EE function inside your Python code.


#7

I’m still having a bit of a hard time wrapping my head around how to pass the arguments along to to it - like running ee site create domain.com --wp (which would require me to use the EESiteCreateController).


#8

Hi @timworx

It’s been a long time, and we haven’t heard from you. It looks like your issue is resolved.

I am closing this support topic for now. Feel free to create a new support topic if you have any queries further. :slight_smile:


#9