我构建了一个python模块,我想在我的pyspark应用程序中导入它.
我的包目录结构是:
wesam/
|-- data.py
`-- __init__.py
Run Code Online (Sandbox Code Playgroud)
import wesam我的pyspark脚本顶部的一个简单导致ImportError: No module named wesam.我也试图压缩它与我的代码以出货--py-files为推荐这个答案,没有运气.
./bin/spark-submit --py-files wesam.zip mycode.py
Run Code Online (Sandbox Code Playgroud)
我也按照这个答案的建议以编程方式添加了文件,但是我得到了同样的ImportError: No module named wesam错误.
.sc.addPyFile("wesam.zip")
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
开放声音控制(OSC)是用于计算机,声音合成器和其他多媒体设备之间通信的协议,其针对现代网络技术进行了优化.将OSC与MAX/MSP一起使用是特别常见的 - 这实际上就是我正在做的事情,使用OSC和Python与MAX中的另一个子系统进行通信.
有一堆支持OSC的python模块.大.他们都声称自己简单,实用,完美.面临主观领域的风险,您的经验建议用于以下模块的用例是什么?
我想一个简单的实现对我来说是最好的,因为我对OSC只有一点了解.我正在使用Python 2.7.
所以我刚刚安装了SubnetTree(http://www.icir.org/robin/pysubnettree/),如果我打开Python交互式解释器,我可以成功导入它而不会出现任何错误消息.我在我的一个程序中使用它并且可以毫无障碍地成功运行它.但是,Eclipse将导入标记为错误,这是一个问题,因为我使用Eclipse进行调试.我已经去了偏好并恢复了我正在使用的Python解释器无济于事.我只能恢复Python解释器出口,并在我的另一台机器上重新打开它(OS X 10.5,我现在使用的是OS X 10.6),它确定了SubnetTree就好了.知道我应该怎么做吗?提前致谢.
我知道这可能听起来像一个非常愚蠢的问题,但无论如何.我在Python中创建了一个小脚本,我在shell中做了一些更改.通常,在OS X计算机上(它正在运行Python 2.7),我只需输入reload(the_module)并重新加载包含我所做更改的模块.但是,当我在这里重新加载模块时(在windows python v.3.4上),它只是给了我这个:
>>> reload(instfile)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
reload(instfile)
NameError: name 'reload' is not defined
Run Code Online (Sandbox Code Playgroud)
然后当我输入时imp.reload(my_module),它只是说该函数已被弃用.我似乎无法找到新功能(或它的等效物)将在任何地方,所以如果有人可以帮助我,这将是伟大的!:)
扩展现有Python模块的最佳实践是什么 - 在这种情况下,我想python-twitter通过向基本API类添加新方法来扩展包.
我看过了tweepy,我也喜欢这样; 我发现我python-twitter更容易理解并扩展我想要的功能.
我已经编写了方法 - 我正在试图找出将Pythonic和破坏性最小的方法添加到python-twitter包模块中,而不是改变这个模块的核心.
我有一个100行,3岁的python刮刀,现在有bug.起跑线是:
import urllib, re, os, sys, time # line 1: import modules
os.chdir(os.path.dirname(sys.argv[0])) # line 2: all works in script's folder > relative address
# (rest of my script here!)
Run Code Online (Sandbox Code Playgroud)
跑步时
$cd /my/folder/
$python script.py
Run Code Online (Sandbox Code Playgroud)
我收到错误:
python script.py
Traceback (most recent call last):
File "script.py", line 2, in <module>
os.chdir(os.path.dirname(sys.argv[0]))
OSError: [Errno 2] No such file or directory: ''
Run Code Online (Sandbox Code Playgroud)
我该如何阅读此错误以及该怎么做?
我在python中编写了一个实现分类器的类.我想使用Apache Spark来使用此分类器并行化大量数据点的分类.
但是,当我执行以下操作时:
import BoTree
bo_tree = BoTree.train(data)
rdd = sc.parallelize(keyed_training_points) #create rdd of 10 (integer, (float, float) tuples
rdd = rdd.mapValues(lambda point, bt = bo_tree: bt.classify(point[0], point[1]))
out = rdd.collect()
Run Code Online (Sandbox Code Playgroud)
Spark失败并出现错误(我认为只是相关的一点):
File "/root/spark/python/pyspark/worker.py", line 90, in main
command = pickleSer.loads(command.value)
File "/root/spark/python/pyspark/serializers.py", line 405, in loads
return cPickle.loads(obj)
ImportError: No module named BoroughTree
Run Code Online (Sandbox Code Playgroud)
谁能帮我?有点绝望......
谢谢
我使用PyCharm/IntelliJ社区版本来编写和调试Python脚本,但现在我正在尝试调试Python模块,而PyCharm执行错误的命令行指令解析,导致执行错误,或者我正在制作配置错误.
这是我的运行/调试配置:

这是在我运行模块时执行的(这里没有问题):
/usr/bin/python3.4 -m histraw
Run Code Online (Sandbox Code Playgroud)
但是当我调试时,这是IntelliJ控制台中的输出:
/usr/bin/python3.4 -m /opt/apps/pycharm/helpers/pydev/pydevd.py --multiproc --client 127.0.0.1 --port 57851 --file histraw
/usr/bin/python3.4: Error while finding spec for '/opt/apps/pycharm/helpers/pydev/pydevd.py' (<class 'ImportError'>: No module named '/opt/apps/pycharm/helpers/pydev/pydevd')
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
如您所见,参数分析错误,并且在-m选项之后,在模块名称之前传递IntelliJ调试脚本.
我也试过只是把-m histraw在脚本领域,但不工作,那场只是把Python脚本路径,而不是模块.
有任何想法吗?
我目前正在研究一些使用unittest2模块的代码.我怀疑这段代码是用于python2的.可以使用python3 unittest作为unittest2的替代品吗?两者有什么区别?
compatibility python-module python-2.x python-3.x python-unittest
python-module ×10
python ×8
apache-spark ×2
pyspark ×2
python-3.x ×2
debugging ×1
installation ×1
module ×1
osc ×1
pycharm ×1
pydev ×1
python-2.7 ×1
python-2.x ×1
python-3.4 ×1
tweepy ×1