标签: pydev

将命令行参数传递给Eclipse中的Python脚本(Pydev)

我是Python和Eclipse的新手,在理解如何将命令行参数传递给Eclipse(Pydev)中运行的脚本时遇到一些困难.

以下链接说明了如何将命令行参数传递给python脚本.

要将命令行参数传递给模块argecho.py(来自上面链接的代码),

#argecho.py
import sys

for arg in sys.argv: 1
    print arg
Run Code Online (Sandbox Code Playgroud)

我需要输入python控制台

[you@localhost py]$ python argecho.py             
argecho.py
Run Code Online (Sandbox Code Playgroud)

要么

[you@localhost py]$ python argecho.py abc def     
argecho.py
abc
def
Run Code Online (Sandbox Code Playgroud)

我如何将相同的参数传递给Eclipse中的Python脚本(Pydev)?

谢谢 !

python eclipse pydev

24
推荐指数
2
解决办法
4万
查看次数

使用PyDev设置Pylint

我通过easy_install安装了pylint.我可以pylint <filename>成功地跑步.但是pydev拒绝使用它.

  • 我检查了"使用pylint"
  • 我配置了正确的路径
  • 我在eclipse中更新了我的python解释器,在pythonpath中有pylit
  • 我使用Eclipse Galileo
  • 我已经自动检查了构建
  • 我尝试清理整个项目,没有错误

我究竟做错了什么?

pylint pydev eclipse-3.5

23
推荐指数
1
解决办法
8648
查看次数

什么是pyximport,我应该如何使用它?

我正在使用cython为数学模型生成更快的代码.我很难编译代码,但不知怎的,我设法使用.bat:

setlocal EnableDelayedExpansion

CALL "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /x64 /release
set DISTUTILS_USE_SDK=1

C:\Python27\python.exe C:\gcsilve\trunk\myproject\myproject\cythonsetup.py build_ext --inplace

PAUSE
Run Code Online (Sandbox Code Playgroud)

它运行正常......

我的问题是关于pyximport.我有使用pyximport.install()的其他人编写的旧代码.我无法弄清楚它的作用以及为什么我应该使用它,因为我已经自己编译了代码.那么,有人可以用一个非常简单的(对于傻瓜)的方式向我解释pyximport的作用吗?

附加信息:我有一个project1,使用cython.我有一个project2,它引用了project1.

python pydev cython python-2.7

23
推荐指数
2
解决办法
2万
查看次数

Pydev Code完成一切

在许多情况下(例如函数参数),Pydev不会静态地知道变量的类型.因此,代码完成(在.使用之后或使用时ctrl+space)不起作用.

在大多数情况下,您在设计软件时知道运行时的类型.有没有办法暗示Pydev正确编码完成它?

我想这可能需要特定的Pydev功能,或者甚至是新的Python PIP.

这实际上似乎是所有动态语言的一般问题......

更新:
也许有一个例子可以澄清:

def some_func(a_list, an_object):
    a_list.app        # Here I would not get code completion for append
Run Code Online (Sandbox Code Playgroud)

如果Pydev(或PIP)支持它,可以使用的示例:

from someobj import SomeObject
def some_func(a_list, an_object):
    # typecast: a_list=list
    # typecast: an_object=SomeObject
    a_list.app        # Now code completion would show append
Run Code Online (Sandbox Code Playgroud)

我不支持这种特定的方法 - 它只是一个可以工作的系统的例子.同样,当然这不应该是强制性的 - 但有时缺乏提示类型的可能性是令人讨厌的.

python eclipse pydev code-completion

22
推荐指数
2
解决办法
5761
查看次数

pydev断点不起作用

我正在使用python 2.7.2,sqlalchemy 0.7,unittest,eclipse 3.7.2和pydev 2.4进行项目.我在python文件(单元测​​试文件)中设置断点,但它们被完全忽略(之前,在某些时候,它们工作).到目前为止,我已升级所有相关软件(见上文),启动新项目,玩设置,催眠我的屏幕,但没有任何作用.

我从一些帖子得到的唯一想法是,它有一些东西可以将一些.py文件名改为小写.

有没有人有任何想法?

补充:我甚至安装了eclipse的aptana版本并将.py文件复制到它=>相同的结果; 断点仍然被忽略.

仍然没有进展:我已经改变了一些可能被视为不寻常的代码,并用更简单的解决方案取而代之.

更多信息:它可能与模块unittest有关:

  • 定义测试套件的文件中的断点有效,
  • 标准单元测试文件中的断点本身有效
  • 从unittest.TestCase派生的类中的测试方法中的断点不起作用
  • 我在测试用例中测试的代码中的断点不起作用
  • 在我可以在测试方法或正在测试的代码中定义工作断点之前的某个时刻
  • 之后我改变了一些事情:开始使用测试套件,将一些文件名改为小写,......
  • 如果我的代码无异常或测试失败,也会出现此问题.

我已经尝试过的是:

  • 删除.pyc文件
  • 定义新项目并仅将.py文件复制到其中
  • 中间重启几次
  • 升级到eclipse 3.7.2
  • 在eclipse 3.7.2上安装了最新的pydev
  • 切换到aptana(和后面)
  • 删除了"手动"将类添加到我的模块的代码
  • 摆弄一些配置

我还能做的是:

  • 用我的代码启动新项目,开始删除/更改代码,直到断点工作,并且黑盒子的排序是否与我的代码的某些部分有关

  • 有谁知道可能导致这些问题的原因或如何解决这些问题?
  • 还有其他地方我可以寻找解决方案吗?
  • pydev开发人员是否会查看stackoverflow上的问题?
  • 我可能会尝试使用较旧版本的pydev吗?

我一直在使用pydev/eclipse很长一段时间,它对我很有用,但没有调试我就被迫切换IDE.

回答下面Fabio的问题:

  • python版本是2.7.2,
  • sys.gettrace给出None(但我不知道我的代码会对它产生什么影响)
  • 这是更改建议参数后调试器的输出:

pydev调试器:

starting
('Executing file ', 'D:\\.eclipse\\org.eclipse.platform_3.7.0_248562372\\plugins\\org.python.pydev.debug_2.4.0.2012020116\\pysrc\\runfiles.py')
('arguments:', "['D:\\\\.eclipse\\\\org.eclipse.platform_3.7.0_248562372\\\\plugins\\\\org.python.pydev.debug_2.4.0.2012020116\\\\pysrc\\\\runfiles.py', 'D:\\\\Documents\\\\Code\\\\Eclipse\\\\workspace\\\\sqladata\\\\src\\\\unit_test.py', '--port', '49856', '--verbosity', '0']")
('Connecting to ', '127.0.0.1', ':', '49857')
('Connected.',)
('received command ', '501\t1\t1.1')
sending cmd: CMD_VERSION 501    1   1.1

sending …
Run Code Online (Sandbox Code Playgroud)

python debugging unit-testing pydev python-2.7

22
推荐指数
2
解决办法
2万
查看次数

如何在Eclipse/PyDev中抑制"未使用的变量"警告

如何在Eclipse/PyDev中抑制"未使用的变量"警告

当我使用返回元组的函数时,我通常只需要其中一个值,但仍想分配给多个变量.我希望能够暂时关闭此警告,以便我可以解决更严重的问题.然后,我可以在做更多的最终检查时将其重新打开.

如果您想知道为什么我会故意这样做,那只是为了可读性.假设一个函数返回一个元组元组,我的代码的几个部分可能与第三个值一起工作,如下所示:

label, content = myfunc()[2]
Run Code Online (Sandbox Code Playgroud)

有时,我可能只对"内容"作品感兴趣,但我发现这...

tmp, content = myfunc()[2]
Run Code Online (Sandbox Code Playgroud)

...比这更平行(因此更具可读性):

content = myfunc()[2][1]
Run Code Online (Sandbox Code Playgroud)

如果有一个更好的方法来做到这一点而不分配一次性未使用的变量,请随意提供它作为答案.

>>> myfunc()[2]
('lab', 'val')
>>> , v = myfunc()[2]
SyntaxError: invalid syntax
>>> tmp, v = myfunc()[2]
>>> 
Run Code Online (Sandbox Code Playgroud)

python eclipse pydev variable-assignment

22
推荐指数
3
解决办法
2万
查看次数

是否可以轻轻终止Eclipse而不是使用SIGKILL?

我在Windows上使用Eclipse,使用PyDev插件进行Python开发.当我使用'Run'启动我的应用程序时,它会产生一个新的Python(CPython)实例.当我使用'终止'按钮(红色方块)时,它会终止进程.但是,它似乎执行SIGKILL,因此我的关闭处理程序无法清理.

有没有办法让Eclipse发送SIGTERM,或者从Eclipse控制台模拟键盘中断(ctrl-c)?

注意:我知道还有其他Python IDE,比如Komodo或Wing可以解决这个问题,但我不打算转换它.

eclipse process pydev

21
推荐指数
1
解决办法
6388
查看次数

SyntaxError:解析时意外的EOF

我不知道为什么这不起作用请帮忙

import random
x = 0
z = input('?')
int(z)

def main():
    while x < z:
        n1 = random.randrange(1,3)
        n2 = random.randrange(1,3)
        t1 = n1+n2
        print('{0}+{1}={2}'.format(n1,n2,t1)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它输出此错误

File "/Users/macbook/Documents/workspace/gamlir_filar/samlagning.py", line 12

                                                ^
SyntaxError: unexpected EOF while parsing
Run Code Online (Sandbox Code Playgroud)

我正在使用eclipse和python 3.3,我不知道为什么会这样.它有时输出这样的错误.

python eclipse pydev python-3.x python-3.3

21
推荐指数
1
解决办法
16万
查看次数

Pydev在Eclipse中无法识别

我已经在我的Mac上使用Eclipse中的PyDev大约两年了.今天更新了Eclipse,突然PyDev完全丢失了.尝试了一切,包括一个完整的卸载和全新安装,但虽然PyDev显示在菜单中安装,它似乎没有其他地方.

PyDev版本:3.0.0.201311051910 Eclipse:版本:Kepler Service Release 1 Build id:20130919-0819

我无法打开PyDev透视图,我无法创建新的Python文件,并且我无法打开现有的Python文件而不将其视为纯文本.

今晚我有一份巨大的任务,帮助赞赏.

python eclipse ide pydev

21
推荐指数
3
解决办法
3万
查看次数

在Eclipse/PyDev Jython项目中将.dll添加到java.library.path

我正在尝试在PyDev Jython项目中使用已编译的.jar Java库.

我成功地将.jar添加到了PYTHONPATH,并且能够开始使用自动完成工作进行编码.

该库也需要.dll扩展名javaHeclib.dll,因此我将其添加到项目的External Libs部分.

我可以很好地导入库,但是当我尝试访问它的任何函数时出现错误:

java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
Run Code Online (Sandbox Code Playgroud)

我在运行配置中添加了一个VM参数,没有运气:

-Djava.library.path="Y:/path/to/javaHeclib.dll;${env_var:PATH}"
Run Code Online (Sandbox Code Playgroud)

我可以使用java.library.path上面的命令行从命令行运行库.

在PyDev控制台中进行试验,我注意到我可以使用绝对路径加载.dll扩展名,但不能加载相对路径:

>>> import java.lang
>>> java.lang.System.load('Y:/path/to/javaHeclib.dll')
>>> java.lang.System.loadLibrary('javaHeclib')
Traceback (most recent call last):
  File "<console>", line 1, in ?
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
Run Code Online (Sandbox Code Playgroud)

不幸的是,该库正在使用System.loadLibrary上面的调用,我无法访问其源代码.

为什么javaHeclib.dll不在我的java.library.path

编辑

设置java.library.path到包含dll的目录不允许我使用它加载它System.loadLibrary.

-Djava.library.path="Y:/path/to/dll/;${env_var:PATH}"
Run Code Online (Sandbox Code Playgroud)

(使用正斜杠没有什么区别.)我也尝试更改默认的VM args eclipse.ini,没有运气:

-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
-Djava.library.path="Y:\path\to\dll\;${env_var:PATH}"
Run Code Online (Sandbox Code Playgroud)

eclipse jython pydev java.library.path

20
推荐指数
2
解决办法
6万
查看次数