Python is not recognized in Jenkins - python

Python is not recognized in Jenkins when running a .bat file. Within the .bat file "python test.py" is called and it raises the below exception. But from the terminal it works fine.

In your script please give the path where python is installed and followed by your command:- (please follow below)
#echo off
"Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script a.py"

try to add the python installation directory in path environment variable through jenkins.
To add this go to manage jenkins -> configure system -> Environment Variables and add
path=%path%;<python executable path>

Related

VSCode: The term 'python' is not recognized...but py works

I just installed python on VS Code and I can't run any python code using python command.
python command:
Running the code seems to run python command by default and it does not recognize it.
When I right click and choose Run Code it complains:
'python' is not recognized as an internal or external command, operable program or batch file
Same goes for manually running python main.py.
When I open an elevated PowerShell and run python, it complains:
python : The term 'python' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ python
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (python:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
py command:
It doesn't try to use py command but it recognizes it. And when I manually call py main.py, it works.
When I manually do >py main.py it writes my Goodbye, World!
Question:
How can I make it compile/run in VS Code simply by using the CodeRunner's right-click feature (Run Code)?
I already have both Python folder and its Scripts folder in PATH.
I'm using VS Code 1.27.2 and I have installed python 3.7.0 on my machine and have checked its installer checkbox for adding the environment variables automatically. (PATH is ok)
I also installed : ms-python.python and tht13.python and formulahendry.code-runner extensions on the VS Code.
This is my main.py code:
print("Goodbye, World!")
It turned out that I just had to restart my computer after I installed ms-python.python and tht13.python and formulahendry.code-runner extensions on the VS Code and added python's Scripts folder in PATH.
Now both py and python commands work from anywhere like cmd or Run Code in the right click menu.
Restarting your PC after installing the Python Extension and changing the PATH to include Python and it's scripts folder will help. Worked for me
The Windows installer for Python does not put python on your path by default (there's a checkbox during installation to add it). Make sure that you selected an interpreter that's installed by running Select Interpreter and choosing the interpreter you want (the extension will find them through the registry).
I also had this problem after a fresh Windows reinstallation, vscode didnt recognize the commands like python or pip freeze in the PS terminal.
After reinstalling python and vscode, I read the tutorial for python for vscode: https://code.visualstudio.com/docs/python/python-tutorial. Creating a new venv worked for me py -3 -m venv .venv, then navigate to the venv: .venv\scripts\activate. In the new venv all the python commands worked as normal.
If you have already set the path variable, test the same command in a command prompt and see if it works. If it does, just update PowerShell's path settings by running the following from your vs code PowerShell terminal:
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" +
[System.Environment]::GetEnvironmentVariable("Path","User")`
This trick can save you a lot of restarts.
you need to first confirm if python is installed, for that just run python/python3 on terminal/cmd.
If it runs there and it isn't running in VS Code then restart your system in order to get changes reflected.
And if it doesn't run in terminal/cmd as well then first check if python's directories are placed in environment variables.
Add Python path (ex C:\Users\johndoe\AppData\Local\Programs\Python\Python39) to the %PATH% env variable
I added PATH and did everything. but it didn't work on Vscode Powershell.
but python was working in windows CMD. So I just reinstalled Vscode.

Get logs of what jenkins is doing

I am completely new at jenkins. I installed the windows package and tried it out but I am a little lost.
Here is my issue. I basically need jenkins to run a python script located on my computer. It's a scipt that has 1 line
print("hello World")
I created a new build setup with the following under the Build Environment
"Execute windows batch command"
cd "C:\perforce\projects\DEV\E9318_SuperNova\P22_module_split_up\Ref\Tools\"
"C:\perforce\projects\DEV\E9318_SuperNova\P22_module_split_up\Ref\Tools\test.py"
The console output from the build
Building in workspace C:\Program Files (x86)\Jenkins\workspace\E9318_SuperNova-P22_Compensator_FPGA_PSA
[E9318_SuperNova-P22_Compensator_FPGA_PSA] $ cmd /c call C:\windows\TEMP\jenkins7605841087640242580.bat
C:\Program Files (x86)\Jenkins\workspace\E9318_SuperNova-P22_Compensator_FPGA_PSA>cd "C:\perforce\projects\DEV\E9318_SuperNova\P22_module_split_up\Ref\Tools\"
C:\perforce\projects\DEV\E9318_SuperNova\P22_module_split_up\Ref\Tools>"C:\perforce\projects\DEV\E9318_SuperNova\P22_module_split_up\Ref\Tools\test.py"
C:\perforce\projects\DEV\E9318_SuperNova\P22_module_split_up\Ref\Tools>exit 103
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE
I am not sure what I am doing wrong. Any help would be highly appreciated,
Thanks,
Amish
*.py files don't seem to be executable directly (as invoked from a shell)
Change the second line of your script with :
"C:\path\to\python.exe" "C:\perforce\projects\DEV\E9318_SuperNova\P22_module_split_up\Ref\Tools\test.py"
Anyway, this form field is expecting the path to a script that makes the build and runs the tests.
I will also refer to
How to set the PATH environment variable in Jenkins configuration on Windows? as a possible solution. After I added the python executable path to the node's path, I could call my script using
python.exe "C:\perforce\projects\DEV\E9318_SuperNova\P22_module_split_up\Ref\Tools\test.py"

How to use Anaconda Python to execute a .py file?

I just downloaded and installed Anaconda on my Windows computer. However, I am having trouble executing .py files using the command prompt. How can I get my computer to understand that the python.exe application is in the Anaconda folder so it can execute my .py files?
You should use Anaconda Prompt instead of common Windows command prompt.
Then navigate to your folder with the .py file and run:
python myfile.py
However if you want to use normal command prompt you should put the path with you're python.exe which is usually in
C:\Users\<username>\AppData\Local\Continuum\anaconda3\python.exe
behind this one put your .py file.
Launch JupyterLab from Anaconda
(Perform the following operation with JupyterLab ...)
Click on icon folder in side menu
Start up "Text File"
Rename untitle.txt to untitle.py (The name of the file started up was also changed)
Start up the "terminal" (In windows the power shell starts up)
Execute the command python untitle.py
Right click on a .py file and choose 'open with'
Scroll down through the list of applications and click something like 'use a different program'
Naviage to C:\Users\<username>\AppData\Local\Continuum\anaconda3
click on python.exe and then click on 'ok' or 'open'
Now when you double click on any .py file it will run it through Anaconda's interpreter and therefore run the python code.
I presume if you run it through the command line the same would apply but perhaps someone could correct me?
Just get to the home of jupyter notebook and select "New" then select "Text file".
Then save the text file as file_name.py
Write your code in the file and save the file.
Then open the "Anaconda Prompt" and then type as follows to run your file
python file_name.py
You can do it from the "Anaconda Prompt"
conda run "my_script.py"
I was doing exactly as Martin Bosch suggested, and was getting the following:
(base) C:\>python command.py
python: can't open file 'command.py': [Errno 2] No such file or directory
I solved it this way:
navigate to the exact file location using the "cd" command
for me this was:
(base) C:\>cd my_scripts
this should put you specifically in the file where your .py script is located.
now you should try to input the name of your file.
(base) C:\my_scripts> test_script.py
you may get asked which program to run this with, and simply find python.exe
After doing this process once, I can simply type (in anaconda prompt)
test_script.py
and it runs no problem, even from the top of the file tree (I don't have to be in the exact file, nor do I have to explicitly give the whole file path)
Anaconda should add itself to the PATH variable so you can start any .py file with "python yourpythonfile.py" and it should work from any folder.
Alternatively download pycharm community edition, open your python file there and run it. Make sure to have python.exe added as interpreter in the settings.
If you get the following error:
can't open file 'command.py': [Errno 2] No such file or directory
Then follow this steps to fix it:
Check that you are in the correct directory where the Python file is.
If you are not in the correct directory, then change the current working directory with cd path. For instance: cd F:\COURSE\Files.
Now that you are in the directory where your .py file is, run it with the command python app.py.
Check where is the directory for the ananconda environment directory which is generally
"C:\Users\[UserName]\.conda\envs\[conda environment directory]"
You will see python.exe in that directory.
After that, you need to use the following command to execute your python file (i.e. xx.py) when you are running Anaconda prompt and you will be done:
"C:\Users\[UserName]\.conda\envs\[conda environment directory]\python.exe" xxx.py
BTW, if you have global variable (i.g. variable yyy) that contain directory, you have to define the global variable that contains full path of directory just below the header (the import section) to prevent the "name 'yyy' is not defined" error to occur:
from pathlib import Path # dealing with path issue
yyy = Path("[DriverLettter]:\Full\Path\of\Directory")

Different environment variables on git bash and windows cmd

I have a python file in which I'm using the subprocess module to execute some command line scripts.
I'm using Git bash to run this python file. In the file, I execute the script:
KG_URL=http://127.0.0.1:8900
This script sets the variable successfully when I run it manually on the git bash command line.
But when I execute this using the python file, it gives me the following error:
'KG_URL' is not recognized as an internal or external command,operable program or batch file.
I tried digging deeper into this and I found out that executing the python file on git bash is the equivalent of running those scripts on the Windows cmd. When I tried running the set command without parameters (to get the current environment variables) on the Windows cmd, I found out that the variable KG_URL does not exist. But when I ran the same command on git bash, I can see that KG_URL exists.
Any idea why this discrepancy exists? And how can I solve this issue?
The reason why I'm executing these scripts in a Python file is because I need to convert it into an exe later. Assuming that all environments where I run this exe will have git bash installed, is there any way of ensuring that these scripts run only through git bash, and not the Windows cmd?

How do I run my Python script? Why does the command line tell me "no such file or directory"?

I have Python 2.7 installed at C:\Python27 and I have added the path C:\Python27\; to the environment variables and .py: to PATHEXT. I am able to launch Python.
I downloaded a folder google-python-exercises to my desktop, which contains a script hello.py.
Following the advice in the Google Developers course, I try to run the script by using python hello.py at the command prompt.
When I attempt this, I get the message: python: can't open file 'hello.py: [Errno 2] No such file or directory. What is wrong, and how am I supposed to fix it? I found that I can solve the problem by running cmd from the folder, but this seems like a temporary solution.
Python cannot access the files in the subdirectory unless a path to it provided. You can access files in any directory by providing the path. python C:\Python27\Projects\hello.py
I resolved this problem by navigating to C:\Python27\Scripts folder and then run file.py file instead of C:\Python27 folder
Options include:
Run the command from the folder where hello.py is located (this way, hello.py is already a relative path to the file). This is the solution that OP found.
Give a proper path to the hello.py file - either absolute (e.g. C:/Users/me/Desktop/google-python-exercises/hello.py) or relative (for example, google-python-exercises/hello.py, if the current working directory is the desktop).
Add a path to the folder (C:/Users/me/Desktop/google-python-exercises) to the PYTHONPATH environment variable, and run the code as a module (python -m hello).
In all cases, a path is being given directly - Python will not "search" for the file.
From your question, you are running python2.7 and Cygwin.
Python should be installed for windows, which from your question it seems it is. If "which python" prints out /usr/bin/python , then from the bash prompt you are running the cygwin version.
Set the Python Environmental variables appropriately
, for instance in my case:
PY_HOME=C:\opt\Python27
PYTHONPATH=C:\opt\Python27;c:\opt\Python27\Lib
In that case run cygwin setup and uninstall everything python.
After that run "which pydoc", if it shows
/usr/bin/pydoc
Replace /usr/bin/pydoc
with
#! /bin/bash
/cygdrive/c/WINDOWS/system32/cmd /c %PYTHONHOME%\Scripts\\pydoc.bat
Then add this to $PY_HOME/Scripts/pydoc.bat
rem wrapper for pydoc on Win32
#python c:\opt\Python27\Lib\pydoc.py %*
Now when you type in the cygwin bash prompt you should see:
$ pydoc
pydoc - the Python documentation tool
pydoc.py <name> ...
Show text documentation on something. <name>
may be the name of a Python keyword, topic,
function, module, or package, or a dotted
reference to a class or function within a
module or module in a package.
...
Try uninstalling Python and then install it again, but this time make sure that the option Add Python to Path is marked as checked during the installation process.

Categories

Resources