Importing Problem on Windows

B

brolewis

I have a directory that has two files in it:

parse.py
parser.py

parse.py imports a function from parser.py and uses it to parse out the
needed information. On Linux, the following code works without a
problem:

parse.py, line 1:
from parser import regexsearch

However, when I run the same command in Windows, I get the following
error:

ImportError: cannot import name regexsearch
Any suggestions on why this would work on Linux but not on Windows?
 
K

Kartic

It is quite possible that in linux, you launched the python interpreter
shell from the same directory you stored your parser.py and parse.py
files.

On windows, you probably saved the parser*.py files to some place like
"my documents" and launched the python interpreter or IDLE.

So, you could probably try this:
1. Launch command shell.
2. CD to the directory where you saved the parser*.py files.
3. Start python.exe from the command prompt (not from the Program
Files shortcut)
4. Try importing.

Easier...copy the parser*.py files into the Libs folder of your python
installation in your windows machine.

Thanks,
--Kartic
 
G

Grig Gheorghiu

I normall set PYTHONPATH to the parent directory of my module directory
tree. If I have my module files in C:\home\mymodules and below, then I
set PYTHONPATH to C:\home. This way, I can do "import mymodules" in my
code.
 
B

brolewis

I launched the interpreter shell from the same directory in both
Windows and Linux before posting. That's what sent the red flag up for
me.
 
P

Peter Otten

brolewis said:
I have a directory that has two files in it:

parse.py
parser.py

parse.py imports a function from parser.py and uses it to parse out the
needed information. On Linux, the following code works without a
problem:

parse.py, line 1:
from parser import regexsearch

However, when I run the same command in Windows, I get the following
error:

ImportError: cannot import name regexsearch
Any suggestions on why this would work on Linux but not on Windows?

This has nothing to do with Linux vs. Windows. Depending on sys.path and
your current working directory either your own parser.py or the parser.py
module in the library is imported.
If you want to play it safe, rename your parser.py to myparser.py or another
name that is not already used by the standard library and avoid the
confusion between the two modules. If you do that, don't forget to delete
the compiled module parser.pyc or parser.pyo, too.

Peter
 
J

John Machin

brolewis said:
I have a directory that has two files in it:

parse.py
parser.py

parse.py imports a function from parser.py and uses it to parse out the
needed information. On Linux, the following code works without a
problem:

parse.py, line 1:
from parser import regexsearch

However, when I run the same command in Windows, I get the following
error:

ImportError: cannot import name regexsearch
Any suggestions on why this would work on Linux but not on Windows?

Hint for the future: use the -v argument (python -v yourscript.py
yourarg1 etc) to see where modules are being imported from.

Example (I don't have a module named parser anywhere):

python -v
[big snip]import parser # builtin <<<<==== aha!
Traceback (most recent call last):
 
J

John Machin

brolewis said:
I have a directory that has two files in it:

parse.py
parser.py

parse.py imports a function from parser.py and uses it to parse out the
needed information. On Linux, the following code works without a
problem:

parse.py, line 1:
from parser import regexsearch

However, when I run the same command in Windows, I get the following
error:

ImportError: cannot import name regexsearch
Any suggestions on why this would work on Linux but not on Windows?

Hint for the future: use the -v argument (python -v yourscript.py
yourarg1 etc) to see where modules are being imported from.

Example (I don't have a module named parser anywhere):

python -v
[big snip]import parser # builtin <<<<==== aha!
Traceback (most recent call last):
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top