1,105,380 Community Members

Python 2.6 Environment Variable Issue

Member Avatar
Siberian
Posting Pro in Training
461 posts since Jan 2008
Reputation Points: 1 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Can there be a conflict between two different version of python ?

I have a program that needs access to Python 2.6, I have a environment variable setup, so the program that needs access to a subfolder of the Python 2.6 installation is suppose to access via this environment variable;
C:\Python26\modules\;

The program is not accessing the sub-folder of Python 2.6 ?

Member Avatar
snippsat
Veteran Poster
1,041 posts since Aug 2008
Reputation Points: 483 [?]
Q&As Helped to Solve: 382 [?]
Skill Endorsements: 10 [?]
 
1
 

In environment variable Path,you should add root folder and scripts folder of python26.
http://www.windows7hacker.com/index.php/2010/05/how-to-addedit-environment-variables-in-windows-7/
This is what you add to Path
;C:\python26\;C:\python26\scripts\;
Restart.

Test it out in cmd(command line) type python.
Now running program pythnon somecode.py will use python26 and install modules with setuptools,pip will find and install to python26.
python setup.py install
pip install somepackage

Member Avatar
Siberian
Posting Pro in Training
461 posts since Jan 2008
Reputation Points: 1 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

I added the semi-colen before the python path that I need the program to access, the program is not finding the path in the system variable ?

I don't understand what I should test out in a python command, a python script ? If so I did try a python script within python cmd, I got an error ?

Member Avatar
snippsat
Veteran Poster
1,041 posts since Aug 2008
Reputation Points: 483 [?]
Q&As Helped to Solve: 382 [?]
Skill Endorsements: 10 [?]
 
0
 

I added the semi-colen before the python path that I need the program to access, the program is not finding the path in the system variable ?

I think you are mixing the understanding of environment variable and PYTHONPATH.
Environment variable you set so Windows find the Python version you use.
PYTHONPATH is the path Python search for Python code/programs.

To se where Python search you can do this.

>>> import sys
>>> print sys.path
#Here you get a list of all folder python search for code(PYTHONPATH)
#If you have a .py in one of this folders Python will find it

I don't understand what I should test out in a python command

No you should test python command out in command line for OS called cmd
Here how it look for me when i type in python in cmd.

Microsoft Windows [Versjon 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Med enerett.

C:\Users\Tom>cd\

C:\>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>>

If environment variable is set up correct you can type python anywhere in cmd(command line) and Python will start.
So to sum it up Environment variable is so that windows can find Python.
PYTHONPATH is where Python search for Python code(.py).

Member Avatar
Siberian
Posting Pro in Training
461 posts since Jan 2008
Reputation Points: 1 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

What your saying is if print sys.path can't find the modules subfolder in the Python 26 then something is wrong. That is why the program is unable to find it ?

Member Avatar
snippsat
Veteran Poster
1,041 posts since Aug 2008
Reputation Points: 483 [?]
Q&As Helped to Solve: 382 [?]
Skill Endorsements: 10 [?]
 
0
 

Yes Python only find code in PYTHONPATH.
There are some solutions,you can move your "modules subfolder" to a folder in PYTHONPATH.
Usually all Python modules/code get placed in C:\Python26\Lib\site-packages

You can append to PYTHONPATH.

import sys
sys.path.append(r'C:\path\to\module')

The only bad ting with this solution is that is not permanent.

To permanently add to PYTHONPATH,you can do this.
Search for sitecustomize.py,if you dont find it make it in C:\Python26\Lib\site-packages
In this sitecustomize.py file add this.

#sitecustomize.py
import sys
sys.path.append(r'C:\path\to\module')

Restart Python.
Now see if your C:\path\to\module are in print sys.path.

An other option is just to make .pth file in site-packages folder.
In that file just add C:\path\to\module

Member Avatar
Siberian
Posting Pro in Training
461 posts since Jan 2008
Reputation Points: 1 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

I created the sitecustomize.py file and witin this file I entered the path to the modules, restarted the computer. Then I ran 'import sys' followed by 'print sys' and in the list I couldn't find my modules path ? I did find out I had (2) sitecustomize.py files, one that you told me to create, the other in my software, that I can't edit.

No one else has experienced a headache, it just works when they place the correct modules in the right sub-folder.

Member Avatar
Siberian
Posting Pro in Training
461 posts since Jan 2008
Reputation Points: 1 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Doesn't a environment variable dig into sub-folders to find what it needs ? For example if I have
C:\python\modules\; in my envorinment variable and there is a subfolder called 'acme' will it dig for the scripts within 'acme' or stop searching ?

Member Avatar
pyTony
pyMod
6,104 posts since Apr 2010
Reputation Points: 818 [?]
Q&As Helped to Solve: 1,056 [?]
Skill Endorsements: 42 [?]
Moderator
Featured
 
0
 

No only listed directories are checked. Of course the directory can be package and then it is imported normally.

Member Avatar
Siberian
Posting Pro in Training
461 posts since Jan 2008
Reputation Points: 1 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

If it's suppose to check only listed directories, does it search for sub-directories / folders. I could reinstall everything, I want to solve it without going that route, it sounds simple to solve, yet it's not solved.

You
This article has been dead for over three months: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article