Thread: [Pydev-users] [Users] Pydev import errors, analyzer gone haywire
Brought to you by:
fabioz
From: SourceForge.net <no...@so...> - 2010-07-27 11:43:06
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Pydev is showing all except builtin imports as unresolved in my projects, even those from the project itself or from the standard library. Restarting Cclipse, closing/opening the project or cleaning it didn\'t help. What can I do? I don\'t know when this started but I can\'t seem to fix it. |
From: SourceForge.net <no...@so...> - 2010-07-27 12:44:02
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Forgot to add, this is on Eclipse 3.6, Pydev 1.6.0. |
From: SourceForge.net <no...@so...> - 2010-07-27 13:32:12
|
The following forum message was posted by fabioz at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Do you have some error in your error log? See: http://pydev.org/faq.html#how_do_i_report_a_bug |
From: SourceForge.net <no...@so...> - 2010-07-27 14:44:47
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: I get a lot of these: [quote] !ENTRY org.python.pydev.core 2 2 2010-07-27 12:30:57.895 !MESSAGE No ast manager configured for :org.python.pydev.parser !STACK 0 java.lang.RuntimeException: No ast manager configured for :org.python.pydev.parser at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.addModuleManagers(ProjectModulesManager.java:500) at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getManagers(ProjectModulesManager.java:432) at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getManagersInvolved(ProjectModulesManager.java:515) at org.python.pydev.editor.codecompletion.revisited.ProjectModulesManager.getCompletePythonPath(ProjectModulesManager.java:532) at org.python.pydev.plugin.nature.PythonPathNature.getCompleteProjectPythonPath(PythonPathNature.java:110) at org.python.pydev.navigator.PythonBaseModelProvider.notifyPythonPathRebuilt(PythonBaseModelProvider.java:265) at org.python.pydev.plugin.nature.PythonNatureListenersManager.notifyPythonPathRebuilt(PythonNatureListenersManager.java:53) at org.python.pydev.plugin.nature.PythonNature$RebuildPythonNatureModules.run(PythonNature.java:163) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) [/quote] No ast manager configured for :org.python.pydev.X where X is any one of parser, jython, debug Also, got this after Eclipse shutdown in the console after launching it from command line: [quote] Not saving ast manager for: P/Cheeseshop-dev. No write area available. [/quote] |
From: SourceForge.net <no...@so...> - 2010-07-28 03:51:05
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Anything? Just about every project I have displays unwarranted error markers, and I can\'t trust Pydev to show me errors in my code. |
From: SourceForge.net <no...@so...> - 2010-07-28 15:16:37
|
The following forum message was posted by fabioz at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Can you do a test: - Check \'enable logging for code-completion\' and \'enable logging for analysis requests\' - Close all editors - Restart eclipse - Create a new project with the default configuration - Create an empty file in the project - Request a completion (ctrl+space) in the empty file - Paste the output in the forum. Cheers, Fabio |
From: SourceForge.net <no...@so...> - 2010-07-28 15:55:21
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: I\'m not getting anything in workspace/.metadata/.log or the Error Log when I attempt code completion. Is there some other log I should be looking at? |
From: SourceForge.net <no...@so...> - 2010-07-28 16:04:42
|
The following forum message was posted by fabioz at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: It should create a \'Pydev Logging\' console. |
From: SourceForge.net <no...@so...> - 2010-07-28 16:06:10
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Where? It\'s not visible in the Show View list. |
From: SourceForge.net <no...@so...> - 2010-07-28 16:33:51
|
The following forum message was posted by fabioz at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: You have to show the console view: window > show view > console and then in the downside triangle choose the \'pydev logging\' console (it\'s one of the many consoles that are probably stacked in that view). |
From: SourceForge.net <no...@so...> - 2010-07-28 16:41:21
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Ok, I\'ve got it. Typed into an empty python module: \"StringI\" and pressed ctrl+space. Code completion gave me a list of suggestions, from which I picked the right one, io.StringIO. Pydev inserts the string \"from io import StringIO\\nStringIO\". I save the file, and then Pydev inserts an error marker on StringIO (on the first line), saying it\'s an unresolved import. This is the resulting log: http://pastebin.org/425638 |
From: SourceForge.net <no...@so...> - 2010-07-28 17:13:39
|
The following forum message was posted by fabioz at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Which python version are you trying to use? It seems strange that you\'re using from io import StringIO (python 3) and yet the configured interpreter from the log you pasted is /usr/bin/python2.6 That\'s probably the source of your problem... (libs from one python version with another configured). Not sure how that got be be like that though. Cheers, Fabio |
From: SourceForge.net <no...@so...> - 2010-07-29 05:31:59
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Bad example, although doing \"from io import StringIO\" works fine on Python 2.6. The same happens with \"from copy import copy\" and so on. |
From: SourceForge.net <no...@so...> - 2010-07-29 10:37:32
|
The following forum message was posted by fabioz at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: from io import StringIO shouldn\'t work in Python 2.6 unless you changed your installation (the proper thing would be from StringIO import StringIO in Python 2.6). Can you do the following: In that same file write: import sys;print \'\\n\'.join(sorted(sys.path)) Run that and paste the results you have. Cheers, Fabio |
From: SourceForge.net <no...@so...> - 2010-07-29 16:36:30
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: /home/alex/workspace/TestProject/src /home/alex/workspace/TestProject/src /usr/lib/pymodules/python2.6 /usr/lib/pymodules/python2.6/gtk-2.0 /usr/lib/python2.6 /usr/lib/python2.6/dist-packages /usr/lib/python2.6/dist-packages/PIL /usr/lib/python2.6/dist-packages/gst-0.10 /usr/lib/python2.6/dist-packages/gtk-2.0 /usr/lib/python2.6/lib-dynload /usr/lib/python2.6/lib-old /usr/lib/python2.6/lib-tk /usr/lib/python2.6/plat-linux2 /usr/local/lib/python2.6/dist-packages /usr/local/lib/python2.6/dist-packages/setuptools-0.6c11-py2.6.egg-info Don\'t get hung up on the StringIO thing, though. This happens with every Python version I try in Pydev (I have several Python versions compiled, although only 2.6 and 3.1 are installed system wide, as official Ubuntu packages). |
From: SourceForge.net <no...@so...> - 2010-07-29 18:35:38
|
The following forum message was posted by fabioz at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Can you do a test: just try to remove your python interpreter and re-add it? (it could be that the pydev interpreter caches are somehow corrupted. |
From: SourceForge.net <no...@so...> - 2010-07-29 18:46:48
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Well, that did it, I\'m not getting anymore import errors from system modules! Thanks. Apparently just refreshing the interpreter with \"Apply\" does not have the same effect as removing and adding back the interpreter. I would like to understand Pydev\'s import resolver better. It does not seem to work with namespace packages at all, so virtually all of my projects have unwarranted error markers in them (even without this problem that was just resolved). Try this: [quote] easy_install paste pastedeploy pastescript [/quote] Then write into a module: [quote] from paste import httpserver [/quote] and Pydev will complain about an import error even though that import works perfectly during run time. Again, I just used paste as an example, and I\'ve come across this issue with other distributions that use namespace packages. I checked out the Pydev code from the repository but I could not figure out where the code that finds the imports is located at. Nor do I have any experience developing Eclipse plugins, so I quickly gave up. |
From: SourceForge.net <no...@so...> - 2010-07-29 19:00:12
|
The following forum message was posted by fabioz at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: The issue is that the interpreter info is gathered once and then set in stone, so, if you add new libraries, you have to go and add the new folders to the pythonpath if you only do the apply. So, in your example, after doing the easy_install, you need to add the directory added to the pythonpath (in my machine in that specific case that\'d be D:\\bin\\python265\\Lib\\site-packages\\paste-1.7.4-py2.6.egg), but if you remove and then re-add the interpreter, it\'ll become correct as by default pydev will list all the pythonpath entries on a new interpreter. If you want to check, the class that does the code-analysis for imports is com.python.pydev.analysis.visitors.ImportChecker. It uses the pydev type-inference, but that code can be hard to follow (its far from trivial statically analyzing python code). Cheers, Fabio |
From: SourceForge.net <no...@so...> - 2010-07-29 19:20:41
|
The following forum message was posted by agronholm at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: I normally install new stuff using pip, which does not create egg directories but installs directly to site-packages / dist-packages. Therefore I can just press \"apply\" to get pydev to recognize new packages without having to explicitly add any new directories, and this works for the vast majority of distributions (ones that don\'t use namespace packages). This is also the way forward (I\'ve been involved with the Python packaging project so I\'m somewhat up to date on the state of the art). The problem is that several distributions may share directories, but for some reason Pydev isn\'t recognizing those as valid imports. I would like to find out the list of modules that Pydev has gathered from its search path so I can better understand how the process works. Is there a way to do this? |
From: SourceForge.net <no...@so...> - 2010-07-29 19:35:19
|
The following forum message was posted by fabioz at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: If you\'re in the latest pydev, you can create an interactive interpreter using your running vm: \"Jython using VM running Eclipse console\" -- Just Ctrl+Alt+Enter and choose that option. Then, in the shell you can do: import org.python.pydev.plugin.PydevPlugin manager = org.python.pydev.plugin.PydevPlugin.getPythonInterpreterManager() info = manager.getDefaultInterpreterInfo(None) modules_manager = info.getModulesManager() for key in modules_manager.getOnlyDirectModules(): print key The \"key\" there is an object with the name resolved and the file which belongs to that name. The code that will create that information is at org.python.pydev.editor.codecompletion.revisited.ModulesManager.changePythonPath(String, IProject, IProgressMonitor). Cheers, Fabio |
From: SourceForge.net <no...@so...> - 2010-07-30 14:03:23
|
The following forum message was posted by intersol at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: Having the same problem, I tried to follow the thread but I do not understand how to solve the issue. Currently I do have use 3.6/1.6.0 and have configured both py26 and py31 on it and I do get unresolved imports for modules like ctypes, logging, platform. What is happening? these are not some sort of manually installed python modules and the auto-configured python inclusion paths are looking right to me. Thanks. |
From: SourceForge.net <no...@so...> - 2010-08-20 11:21:19
|
The following forum message was posted by fabioz at http://sourceforge.net/projects/pydev/forums/forum/293649/topic/3785840: The first step would be removing the interpreter and adding it again (which was how it was solved in this case). Other points would include checking if you have an active firewall that may be preventing communication. If that\'s not your case, please create a new thread giving details asked at: http://pydev.org/faq.html#how_do_i_report_a_bug Cheers, Fabio |