Pydev import standard Python module - pydev

As you can see from the screenshot, I am trying to import a standard Python module in the Pydev editor and it is claiming that 'Queue' has the problem 'Undefined variable from import: Queue'. As you can see in the screenshot, the code works in the Pydev console, and also (not shown) in the Python Idle console and editor. Can anyone explain why Pydev is unable to import this module in the Pydev editor where other environments, including the Pydev console have no problems.

I found that I need to add 'multiprocessing' to the list of forced builtins in the Pydev configuration which resolved my problem.

Related

PyDev doesn't auto-complete my imported modules

I have Eclipse 4.7.3 with PyDev installed. When I import modules from another directory (or any for that matter) pydev doesn't show a warning that it can't find the import but it doesn't do autocomplete for functions within that import.
Ex import DataDefines as df and then when using it like df.INSERTFUNCTIONHERE it doesn't give any usefull suggestions for functions found in that file. When I run it, it grabs the imports fine but I want to be able to auto-complete for syntax and spelling reasons. What could be going wrong? I have configured my python interpreter which helped make the program actually run and I have modified settings in Preferences -> PyDev -> Code Completion but now I am stuck.
Are your sources under a source folder?
Have you tried following the getting started?
http://www.pydev.org/manual_101_root.html
If you're not able to figure out from that, please provide a screenshot of your pydev package explorer showing the modules you have and the actual issue on the completion.

pydev source helpers for indirect packages

I'm using PyDev 6.0.0 under Eclipse Neon, and I find that PyDev doesn't find the source for some modules.
For example, when using wxPython, when I edit a source file that contains:
mylist = wx.ListCtrl(parent, ID)
If I hover over ListCtrl, I only see:
ListCtrl.__init__ found at wx.__init__
and in wx.init has:
# Import all items from the core wxPython module so they appear in the wx
# package namespace.
from wx.core import *
# Clean up the package namespace
del core
del wx
So, ListCtrl is really in wx.core but imported into wx.
PyDev can't provide code completion, or doc hover help, etc. etc for this kind of structure.
Is there anyway to configure around this problem?
I'm new to the wxPython library and it would really be nice to have IDE support for it.
You will almost certainly have to create stubs for it. Because wxPython is a wrapper around C++, it can be harder for some IDEs to autocomplete. I think Wingware and PyCharm work though. See the following for more information on creating stubs:
How do I fix PyDev "Undefined variable from import" errors?
I think it may be a bug in PyDev though:
Autocompletion in Pydev- Eclipse for wxpython
The bug tracker for PyDev is not very friendly, so I wasn't able to actually find a bug number for you.

Eclipse-Pydev cannot find Lucene Library

I have been developing a Python program using the Pydev(2.5.0) plugin in Eclipse Helios on Ubuntu OS 11.4.
The program uses lucene (core 3.6) library. Lucene was installed using jcc.
Previously I developed it with a text editor and ran on the command line using python xxx.py and there was no problem regarding lucene libraries.
Then, I imported the project to Eclipse IDE. The other source files still run as-is, but the program cannot locate the basic classes of lucene library.
import lucene # no error
but if I try to import StandardAnalyzer or any other class, I get an error:
from lucene import StandardAnalyzer #error: unresolved import
My configuration:
Grammer Version: 2.7
Python interpreters: usr/bin/python2.7
Libraries include:
I tried the add the lucene folder to the external libraries but it didn't help.
I have found this path by using command line python interpreter with these commands.
import lucene
print lucene.__path__
Though a similar path is already in the library (see image. 2nd library)
['/usr/local/lib/python2.7/dist-packages/lucene-3.6.0-py2.7-linux-i686.egg/lucene']
I would appreciate your comments about this problem. Thanks.
I think that the problem is that the PyDev code-analyzer can't really analyze PyLucene. You can try adding 'lucene' to window > preferences > pydev > interpreter - python > forced builtins (see: http://pydev.org/manual_101_interpreter.html for details).
Had the same problem running Helios Service Release 2 on Mac OSX 10.8.5. Fixed it as follows:
Open Project >> Properties
Select PyDev - Interpreter/Grammar
Click "Click here to configure an interpreter not listed"
Select your interpreter
Select "Forced Builtins" and add all three directories (lucene, org and java) (see http://pydev.org/manual_101_interpreter.html for details).
Select "Libraries" and add the path to each of those directories to System libs.

Unresolved import error with pydev while using from-import-as

In Eclipse with PyDev I get an Unresolved import: pilImage error while having this code.
The code works well when executed from inside PyDev or shell, but the IDE is high-lighting me this as an error.
from PIL import Image as pilImage
# do something with pilImage
How can I solve the problem?
I think it may be a bit of a misunderstanding on how PIL should be used...
PIL has a rather uncommon packaging, in which the PIL library is added to the PYTHONPATH (and not the directory containing it), so, if you install with easy-install, it'll do something as:
/Lib
/Lib/site-packages
/Lib/site-packages/PIL-1.1.7-py2.6-win32.egg
/Lib/site-packages/PIL-1.1.7-py2.6-win32.egg/Image.py
So, the import that should actually be done is: import Image as pilImage (i.e.: no from PIL in the import).
A reference backing up that this is how the import should be: http://effbot.org/imagingbook/introduction.htm
And in this case, the directory added to the PYTHONPATH should be: "/Lib/site-packages/PIL-1.1.7-py2.6-win32.egg"
Note that your import could work if you renamed the directory /Lib/site-packages/PIL-1.1.7-py2.6-win32.egg to /Lib/site-packages/PIL and just left /Lib/site-packages/ in the PYTHONPATH (in which case you still would need to go to the PyDev interpreter configuration and just press apply so that it finds out that a new PIL package was added to the PYTHONPATH -- note that in this case /Lib/site-packages/PIL should NOT be added to the PYTHONPATH)
Did you install PIL as an egg after installing PyDev? If so, PyDev won't know it's there. Remove and re-add the interpreter to fix this. See this SO question for more.
Are you sure that your PyDev-configured interpreter knows the PIL-package and it's contents?
If you configured your PyDev Python-interpreter before you installed the PIL-packages, it doesn't know anything about it.
Sometimes PyDev requires you to restart Eclipse in order to correct the wrong error message. It's often caused when a user writes the import before adding the module.

Pydev say, "Unresolved import" error

hm..
Sometime, PyDev say "Unresolved import error".
In my environment
Python2.6.6 Eclipse3.7 PyDev2.2.2
Errors are.
> Unresolved import: pycassa -> import pycassa Unresolved import:
> WebSocketHandler -> from geventwebsocket.handler import
> WebSocketHandler Unresolved import: tweepy -> import tweepy
Is there any helpfull information?
Had the same problem. In the end I was able to fix the problem by deleting my old interpreter in Preferences > PyDev > Interpreters, and creating a new interpreter called "python" which had the correct paths. After quitting and reopening eclipse, pydev found all my modules.
Probably your PYTHONPATH is not set properly (or if those are libraries in the interpreter, maybe you added them after configuring it).
See: http://pydev.org/manual_101_interpreter.html for references (note the part on forced builtins there as it might be your case).
You get an unresolved import if the required module cannot be found. Modules are searched for in the current working directory and the directories listed in sys.path. Your python cannot find the modules pycassa and tweepy it appears.
Might want to check this: http://klaith.wordpress.com/2009/06/12/pydev-unresolved-import-errors/
I solved by recreate the interpreter. There is a guide at pedev.org:
What if I add something new in my System PYTHONPATH after configuring
it?
If you add something to your python installation, you need to either
add it manually as a 'new folder' in the System PYTHONPATH (if it's
still not under a folder in the PYTHONPATH) or (recommended) remove
your interpreter and add it again, then, press apply.
Note that if you added a library that's already under a folder in the
PYTHONPATH, you have to at least go to the interpreter preferences and
press apply so that it clears its internal caches (after the
configuration is done, things are set in stone for PyDev)
Thanks for Fabio Zadrozny and nicodjimenez.
I had a similar problem before. I solved the problem by this steps:
1)Window > Preferences > PyDev > Interpreters > Python Interpreter
2)Delete the Python Interpreter path you added previously
3)Add "New" Python Interpreter and choose python.exe path
4)Check Libraries tab (I found the problem at this step.)
Check your path name, is it true or false? Eclipse detect "C:\Python27\lib" but it should be "C:\Python27\libs" and "C:\Python27\Lib".
In the properties for your pydev project, there's a pane called "PyDev - PYTHONPATH", with a sub-pane called "External Libraries". You can add source folders (any folder that has an init.py) to the path using that pane. Your project code will then be able to import modules from those source folders.
Check this two links it may be helps to you,
Unresolved Import Issues with PyDev and Eclipse
Unresolved import: models
Is pycassa found as a symlink within a directory on your PYTHONPATH? Pydev apparently has a bug where its code analysis cannot follow symlinks (and hence will not see your libraries). The python interpreter can though of course.
I was having a similar problem with the dbfpy module.
I had downloaded the tar archive and installed the source files in /usr/lib/python2.7/dist-packages
With this I was able to import the packages in IDLE and even run the code in Eclipse. However the pydev import was still showing as an error with the message "unresolved import"
As suggested by Fabio, I checked the PyDev documentation for forced-builtins. Just adding the name of the package ("dbfpy" in my case to the Forced Builtit tab of Python Interpretr in Eclipse) solved the issue.
(I know the answer is a bit late)
if you installed a python package using, for example: pip install django
i solved the unresolved import issue doing this:
In eclipse:
Window > Preferences
In the left panel tree structure go to:
PyDev > Interpreter - Python
In the upper right panel be sure to have the correct interpreted selected
and in the bottom right panel, click New Folder, navigate to your python installation site-packages (usually in c:\Python33\Lib\site-packages) and search for a folder that ends with .egg-info
In my pc it is "C:\Apps\Environments\Python33\Lib\site-packages\Django-1.5.4-py3.3.egg-info" since i installed python in C:\Apps\Environments, should be different in your case.
This worked with django and selenium, should work with all others as well (as far as i know)
Adding the corresponding package folder ending with '.egg-info' to PyDev > Interpreter - Python - library will resolve the problem.
In Linux, it is usually under /usr/local/lib/pythonX.X/dist-packages
Add site-packages path in environmental variables.
Right click on
computer -> properties -> advanced system settings -> Environmental
variables
.
After that is done, remove the python interpreter and add it again in eclipse.
right click project name in
eclipse --> properties --> python interpreter
.
Hope it works.