python - 为什么我在使用 mrjob 运行 python 文件时得到 "WindowsError [Error5] Access is denied"

标签 python command-line access-denied mrjob windowserror

我试图在 python 文件中使用 mrjob 并在命令行中运行它,但我一直收到错误日志:

C:\Users\Ni\Desktop>python si601lab6_sol.py pg1268.txt
no configs found; falling back on auto-configuration
no configs found; falling back on auto-configuration
creating tmp directory c:\users\ni\appdata\local\temp\si601lab6_sol.Ni.20131019.
052147.951000
writing to c:\users\ni\appdata\local\temp\si601lab6_sol.Ni.20131019.052147.95100
0\step-0-mapper_part-00000
Traceback (most recent call last):
  File "si601lab6_sol.py", line 29, in <module>
    BiGramFreqCount.run()
  File "C:\Python27\lib\site-packages\mrjob\job.py", line 500, in run
    mr_job.execute()
  File "C:\Python27\lib\site-packages\mrjob\job.py", line 518, in execute
    super(MRJob, self).execute()
  File "C:\Python27\lib\site-packages\mrjob\launch.py", line 146, in execute
    self.run_job()
  File "C:\Python27\lib\site-packages\mrjob\launch.py", line 207, in run_job
    runner.run()
  File "C:\Python27\lib\site-packages\mrjob\runner.py", line 458, in run
    self._run()
  File "C:\Python27\lib\site-packages\mrjob\sim.py", line 182, in _run
    self._invoke_step(step_num, 'mapper')
  File "C:\Python27\lib\site-packages\mrjob\sim.py", line 269, in _invoke_step
    working_dir, env)
  File "C:\Python27\lib\site-packages\mrjob\inline.py", line 155, in _run_step
    os.chdir(working_dir)
WindowsError: [Error 5] Access is denied: 'c:\\users\\ni\\appdata\\local\\temp\\
si601lab6_sol.Ni.20131019.052147.951000\\job_local_dir\\0\\mapper\\0'

python文件很简单:

#!/usr/bin/python

# python si-601-lab-5.py input.txt
# Some codes used courtesy of Dr. Yuhang Wang.

from mrjob.job import MRJob
import re

class BiGramFreqCount(MRJob):

  ### input: self, in_key, in_value
  def mapper(self, _, line):
    yield "chars", len(line)
    yield "words", len(line.split)
    yield "lines",1

    ### Task2: replace this part and use bigram (this word and its next word) as the key
    ###        and skip the last word in each line
    print '== mapper output =='
    for word in words:
      print [word, 1]
      yield(word, 1)
    print

  ### input: self, in_key from mapper, in_value from mapper
  def reducer(self, key, values):
    yield (key, sum(values))

if __name__ == '__main__':
  BiGramFreqCount.run()

我已经尝试解决这个问题几个小时了,但还是不行...希望有人能帮助我。谢谢!

最佳答案

问题已解决。当我以管理员身份运行命令提示符时,一切正常。但是我仍然很困惑,因为在我的用户配置文件属性设置中,我是系统的管理员。那么为什么我还需要以管理员身份运行程序呢?我正在使用 Win8 以防万一。

关于python - 为什么我在使用 mrjob 运行 python 文件时得到 "WindowsError [Error5] Access is denied",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19462782/

相关文章:

python - 使用 Python asyncore 对网站进行负载/压力测试

python - 如何在 Python/Pandas 中将变量设置为 "Today' s"date

Windows命令行将字符串传递给groovy

MySQL 错误 1045 (28000) : Access denied for user 'bill' @'localhost' (using password: YES)

python - 如何设置 Atom 的 'styles.less' 文件以突出显示 Python 中的函数和方法调用?

linux - 我使用哪个命令来查找从特定目录开始的特定文件?

c# - 传递用双引号括起来的参数

java - 拒绝访问 - 无法在特定目录中创建文件

windows - Windows 10 上的 Docker : How to move existing containers & images to new location?

Python:类型 'NoneType' 的对象没有 len()