olivia
olivia

Reputation: 85

How to make Python script developed in Spyder IDE executable

I wrote a script in Spyder IDE, but in order for clients to use it, I would like to make it easier to run it then opening Anaconda and then Spyder and running it from there.

The reason I used Spyder was because it allowed me to use many modules that otherwise wouldn't be allowed on company stations.

I researched a lot but could not find a way to do this.

I was thinking of enveloping the script in a batch file and running it. I tried updating the python script to look for modules in the Anaconda default directories:

sys.path.insert(1, C:\\ProgramData\\Anaconda3\\python37.zip)
sys.path.insert(1, C:\\ProgramData\\Anaconda3\\DLLs)
sys.path.insert(1, C:\\ProgramData\\Anaconda3\\lib)
sys.path.insert(1, C:\\ProgramData\\Anaconda3)
sys.path.insert(1, C:\\ProgramData\\Anaconda3\\lib\\site-packages)
sys.path.insert(1, C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32)
sys.path.insert(1, C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib)
sys.path.insert(1, C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin)
sys.path.insert(1, C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\extensions)

When running the script in Windows cmd, I got these errors when importing pandas module, so there is more to using Spyder then just accessing those modules (I couldn't figure out what):

Traceback (most recent call last):
  File "script.py", line 32, in <module>
    import pandas as pd
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\__init__.py", line 13, in <module>
    __import__(dependency)
  File "C:\ProgramData\Anaconda3\lib\site-packages\numpy\__init__.py", line 110, in <module>
    import warnings
  File "C:\ProgramData\Anaconda3\lib\warnings.py", line 494
    f"coroutine '{coro.__qualname__}' was never awaited\n"

Another approach I tried was using pyinstaller, but that is not available for us and I cannot install it from the website.

Is there a way of running the python script and using all the modules offered by Anaconda without going through Spyder?

Upvotes: 0

Views: 15971

Answers (2)

Michael
Michael

Reputation: 737

Also try pyinstaller. It'll give you both an executable and settings for that, like icon or no-console. first go to the directory where your .py file is and run the below command:

pyinstaller script.py --onefile

Before this, you'll need to install that python module:

python* -m pip install pyinstaller

Where * is your specific python version, if you have multiple installed. The first command will give you dist folder, here is where your executable is placed. and the script.spec file is your settings.

Upvotes: 1

tersrth
tersrth

Reputation: 889

Have you tried py2exe? It's a great tool that does exactly what you're asking for.

Also look into cython. It's a lot easier to generate an executable from C code, and you'll get a performance boost as well.

Upvotes: 0

Related Questions