Sublime Text 3 Build System issue - python

I have just started playing around with Sublime Text 3 and i am trying to create a build system for python 3.6.3. I have created a .sublime-build file with the name Python3.6.3.sublime-build which contains the following code :
{
"cmd": ["C:/Python32/python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"quiet": true
}
Whenever I try to build a python file I receive this message at the bottom of the Sublime, in the place where the results from the program should be displayed:
[WinError 2] Finding the specified file was not possible by the system
[cmd: ['C:/Python32/python.exe', '-u',
'C:\\Users\\user\\Desktop\\String_examples.py']]
[dir: C:\Users\user\Desktop]
[path: C:\Program Files (x86)\ARM\ADSv1_2\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\MATLAB\R2012b\runtime\win64;C:\Program Files\MATLAB\R2012b\bin]
Sorry but the [WinError 2] message was translated in english so it may not be the exact error text.
Moreover when I open sublime I receive this error window:
Sublime Text
I am running Windows 7 if that plays any role.
Could someone please explain what did i do wrong because i am kind of stuck with this?
Thanks in advance...!

After several hours of search on the Internet i found that we need to find the right path of the python.exe file and use double backslash instead of single backslash (\) when declaring the file's path. The following answers refer to Windows users.
So the correct code is:
{
"cmd": ["C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python36-32\\python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"quiet": true
}
If we have the following it will not work:
{
"cmd": ["C:\Users\user\AppData\Local\Programs\Python\Python36-32\python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"quiet": true
}
A second way to create the python build system is with this code :
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^ ]File \"(...?)\", line ([0-9]*)",
"selector": "source.python"
}
In this code notice that the file's path is absent. We only refer the file's name. So Windows will not know where to find the python.exe file and we will have an error message on the Sublime console like the one I describe in my question above. So we need to do the following steps:
1.Go here C:\Users\user\AppData\Local\Programs\Python\Python36-32 and copy this path
Note: Here user is the user name of my computer. It will be different in your case.
(AppData folder maybe hidden check the show hidden files option)
Now right click on Computer icon and click on PROPERTIES's option. Then select ADVANCED SYSTEM settings in left sidebar.
Now click on [Environment Variables] and then under [System variables] > [select variable] with name [Path].
Click Edit button and then in [Path] value field keep the already existing data and go to end of the line. Type semicolon ( ; ) and don't erase anything just paste the path of Python directory that you copied after the semicolon at the end of the line.
( It should be something like this ;C:\Users\user\AppData\Local\Programs\Python\Python36-32 )
Then save the changes and close the Sublime Text. Re-open Sublime and it should be ok.
Notice that the code "selector": "source.python"
was not included in the first explation above. Instead there was this code
"quiet": true
but it does not play any role in the solution of this problem.
After completing the procedure explained second, we have a bonus result. We can use the command python on the cmd window without receiving an error because now Windows knows where to find the python.exe file (the path for this file is now included in the PATH parameter of the Windows system).

Related

New and trying to get python set up with Sublime Text [duplicate]

I want to configure Sublime Text 3 to build Python 3, but I don't seem to understand how the builds work. Many tutorials have told me to make a build file containing code such as:
{
'cmd': ['/usr/bin/python3', '-u', '$file'],
'file_regex': '^[ ]*File "(…*?)", line ([0-9]*)',
'selector': 'source.python'
}
and save it as a file called Python.sublime-build or python3.sublime-build (much of the information I found was conflicting). One tutorial suggested creating a new folder in the ST3 Packages folder called Python and add the build file in there, whilst other tutorials suggested leaving it in the folder called User.
One tutorial explained how I had to change the Environment Variable path on my operating system to get it to work. That didn't seem to help either.
I added a folder Python to Packages (since it wasn't there already) and added in a build file with the name Python.sublime_build which featured only the code I posted above in it. Now when I attempt to run Sublime Text it gives me this error:
Error trying to parse build system:
Expected value in Packages\Python\Python.sublime-build:2:5
The reason you're getting the error is that you have a Unix-style path to the python executable, when you're running Windows. Change /usr/bin/python3 to C:/Python32/python.exe (make sure you use the forward slashes / and not Windows-style back slashes \). Once you make this change, you should be all set.
Also, you need to change the single quotes ' to double quotes " like so:
{
"cmd": ["c:/Python32/python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
The .sublime-build file needs to be valid JSON, which requires strings be wrapped in double quotes, not single.
Steps to Make Sublime Text a Python IDE (Windows)
Tested successfully on Sublime Text 3. Assuming Sublime Text and package control are already installed . . .
Install Python (python.org) and pay attention to where it is installed or choose a simple location like the C drive, agreeing to remove character limit at the end of the installation.
Install package SublimeREPL (Cntrl + Shift + P, Package Control - Install Package, SublimeREPL, Enter).
Go to Preferences, Package Settings, SublimeREPL, Settings - User.
Paste in the following, updating the file path to your python installation folder, as needed. You may customize these and choose whatever syntax you like (last line) but I prefer my output in plain text.
{
"default_extend_env": {"PATH":"C:\\Program Files\\Python36\\"},
"repl_view_settings": {
"translate_tabs_to_spaces": false,
"auto_indent": false,
"smart_indent": false,
"spell_check": false,
"indent_subsequent_lines": false,
"detect_indentation": false,
"auto_complete": true,
"line_numbers": false,
"gutter": false,
"syntax": "Packages/Text/Plain text.tmLanguage"
}
}
Save and close the file (SublimeREPL.sublime-settings).
Go to Tools, Build System, New Build System.
Replace all existing text with the following:
{
"target": "run_existing_window_command",
"id": "repl_python_run",
"file": "config/Python/Main.sublime-menu"
}
Cntrl + S or save as "C:\Users[username]\AppData\Roaming\Sublime Text 3\Packages\User\SublimeREPL-python.sublime-build" updating username or path as needed. This should be wherever your settings and builds are stored by Sublime Text.
Go to Tools, Build System, select SublimeREPL-python.
All done--now to test. Open or create a simple python file, having a *.py extension and save it wherever desired.
Make sure the file is open and selected in Sublime Text. Now, when you press Cntrl + B to build and run it, it will open another tab, titled "REPL [python]", executing and displaying the results of your python code.
If you would like to go a step further, I highly recommend making the follow changes, to allow Sublime to reload your executed python in the same window, when you press Cntrl+B (Build), instead of it opening a new tab each time:
Add the following line in the "repl_python_run" command in (Preferences, Browse Packages) SublimeREPL\config\Python\Main.sublime-menu, right before the "external_id": "python" argument:
"view_id": "*REPL* [python]",
and then to change the line:
if view.id() == view_id
into:
if view.name() == view_id
in SublimeREPL\sublimerepl.py.
If you are using PyQt, then for normal work, you should add "shell":"true" value, this looks like:
{
"cmd": ["c:/Python32/python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"shell":"true"
}
Run Python Files in Sublime Text3
For Sublime Text 3,
First Install Package Control:
Press Ctrl + Shift + P, a search bar will open
Type Install package and then press enter
Click here to see Install Package Search Pic
After the package got installed. It may prompt to restart SublimeText
After completing the above step
Just again repeat the 1st and 2nd step, it will open the repositories this time
Search for Python 3 and Hit enter.
There you go.
Just press Ctrl + B in your python file and you'll get the output.
Click here to see Python 3 repo pic
It perfectly worked for me. Hopefully, it helped you too.
For any left requirements, visit https://packagecontrol.io/installation#st3 here.
Steps for configuring Sublime Text Editor3 for Python3 :-
Go to preferences in the toolbar.
Select Package Control.
A pop up will open.
Type/Select Package Control:Install Package.
Wait for a minute till repositories are loading.
Another Pop up will open.
Search for Python 3.
Now sublime text is set for Python3.
Now go to Tools-> Build System.
Select Python3.
Enjoy Coding.
Version for Linux. Create a file ~/.config/sublime-text-3/Packages/User/Python3.sublime-build with the following.
{
"cmd": ["/usr/bin/python3", "-u", "$file"],
"file_regex": "^[ ]File \"(...?)\", line ([0-9]*)",
"selector": "source.python"
}
And to add on to the already solved problem, I had installed Portable Scientific Python on my flash drive E: which on another computer changed to D:, I would get the error "The system cannot find the file specified". So I used parent directory to define the path, like this:
From this:
{
"cmd": ["E:/WPy64-3720/python-3.7.2.amd64/python.exe", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
To this:
{
"cmd": ["../../../../WPy64-3720/python-3.7.2.amd64/python.exe","$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
You can modify depending on where your python is installed your python.
first you need to find your python.exe location, to find location run this python script:
import sys
print(sys.executable)
Then you can create your custom python build:
{
"cmd": ["C:\\Users\\Sashi\\AppData\\Local\\Programs\\Python\\Python39\\python.exe", "-u", "$file"],
"file_regex": "^[ ]File \"(...?)\", line ([0-9]*)",
"selector": "source.python"}
You can change the location, In my case it is C:\Users\Sashi\AppData\Local\Programs\Python\Python39\python.exe
Then save your new build. Don't change the file extension while saving.
I'd like to add just one point to the accepted answer:
when you edit the cmd portion of the snippet below, make sure to add the file address (with forward slash) where python is kept on your computer.
{
"cmd": ["c:/Python32/python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
How to know where python is installed on your system? Two ways for windows users:
Open Command prompt and do the following query: where python
If it shows the path to python.exe, copy and paste it with /. If it shows some error, then follow process below:
Go to start -> Search for python shortcut (not IDLE) -> Right Click -> More -> Open file location -> Right click the shortcut -> Properties -> Target -> Path is now visible -> Copy and paste it in the field above.
Here is a very simple Python Sublime Text build system that works when python scripts are invoked with py file_name.py.
Just create py.sublime-build by Tools > Build System > New Build System and add the contents below:
{
"cmd": ["python3", "$file"]
}
You can select it in Sublime Text editor by going to Tools > Build System > py and building with Ctrl + b.
Note: If your filesystem doesn't python3 than you need to provide path/to/python3 and it should work.

How do I run python 3.4 on sublime text 2?

This is what my python build looks like:
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
I've read that I need to change what's in the "python" part of "cmd":, but I can't find what to change it to. I've seen one video where a guy made it look really easy by taking the path from the terminal. Others say to add a "path": blah blah blah. It always seems to be for Windows computers.
I've tried so many things and I really don't know what to change to make sublime text 2 to run python. Also does it make a difference if I'm using a mac vs windows?
cmd needs to be changed to the path of the python 3 executable. By default, the installer places it in ~/Library/Frameworks/Python.framework/Versions/3.4/bin/python3. So, if your mac username is Anthony, you will need to change your build like so:
{
"cmd": ["/Users/Anthony/Library/Frameworks/Python.framework/Versions/3.4/bin/python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
Note: When running python 3 from the terminal, you are able to use the shortcut command python3. This is because an ALIAS was set up in your .bash_profile when python was installed. However, Sublime Text doesn't read your .bash_profile, so you must specify the full path to python.

Sublime Text shows nothing on Python build

I'm learning Python in recent days and discovered I can use Sublime Text as Python text editor. However I always runned my programs at the "C:\Python34" folder. Now I tried to put my codes in another folder, out of this one, but I don't know why it's not working. Work just at the "Python34" folder...
The console status only shows "Building" and nothing...
My "Python.sublime-build" file:
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf8"
}
Sublime Text 2; Python 3.4; Windows 8.1
Any idea?
Try make sure you have Python in your system path:
Windows key + Pause/Break key to shortcut to System.
Click on Advanced System Settings.
Scroll down in System Variables until you find "Path", click "edit"
Look for C:\Python34 in the string; if it's there don't worry, if not, add it in as follows:
someDirectory\lastItem;C:\Python34. Seperate with semi-colon. (for windows).
Now, you can change your Python.sublime-build file as follows:
{
"cmd": ["C://Python34/python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
If needed, change the directory for Python, or change "34" to whichever version you use. Should do the trick.
EDIT: Feel free to leave in your encoding, I just copy/pasted my sublime-build.

How to get Python 3.4 on Sublime Text 3?

Does anyone have a step by step process for a beginner to get the latest version of Python (3.4) to work on Sublime Text 3? I tried adding Python 3 as another build but I don't think i added it correctly (the instructions were for how to add it for Sublime Text 2) because I cannot build my function when I set it to Python 3 on Sublime Text 3. Only the basic Python build version is working. How can I get Python 3.4 to work? Thanks really need help immediately
Goto Tools > Build > New Build System and enter the following.
{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf8",
"path": "/Library/Frameworks/Python.framework/Versions/3.4/bin/" }
Save the file and restart Sublime Text. If it still doesn't work, check if the 'path' is correct in your case.
Tools > Build System > New Build System..
Replace this code
{
"shell_cmd": "make"
}
with this
{
"cmd": ["/usr/local/bin/python3", "-u", "$file"],
}
/usr/local/bin/python3 ==> python.exe path in your system
then save with a name.sublime-build. It will appear in build system. select the build system and run the python code by pressing Ctrl + B
Select the menu Tools > Build > New Build System and enter the following:
{
"cmd": ["python3", "$file"]
, "selector": "source.python"
, "file_regex": "file \"(...*?)\", line ([0-9]+)"
}
After that, save it to the following (Mac-specific) directory: ~/Library/Application Support/Sublime Text 3/Packages/User
That's all there to it.

Python settings in Sublime Text 2

When I press ctrl+B in SB2 in the console I get ImportError: No module named site.
How to fix it?
First make sure that you saved the file with .py extension and then try to run again. You also need to check that the Python in your .sublime-build is correct. For this look at %APPDATA%\Sublime Text 2\Python\Python.sublime-build file. This file should have something like this:
{
"cmd": ["C:\\python27\\python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
This is equivalent to doing the following on the command line, check that you can do:
python -u C:\your_path\your_script.py
If this doesn't work from the command line it also wont from sublime.

Categories