【问题标题】:Python error "import: unable to open X server"Python 错误“导入:无法打开 X 服务器”
【发布时间】:2013-10-22 00:32:51
【问题描述】:

我在尝试运行一段 python 代码时遇到以下错误:

import: unable to open X server `' @ error/import.c/ImportImageCommand/366.
from: can't read /var/mail/datetime
./mixcloud.py: line 3: syntax error near unexpected token `('
./mixcloud.py: line 3: `now = datetime.now()'

代码:

import requests
from datetime import datetime,date,timedelta

now = datetime.now()

我真的缺乏看到问题。这是我的服务器有问题而不是代码本身的问题吗?

【问题讨论】:

  • 为了记录,它可以在我的电脑上运行。 Linux Mint 15,python 2.7.5 anaconda。

标签: python


【解决方案1】:

这些是来自您的命令外壳的错误。您正在通过 shell 运行代码,而不是 python。

从 python 解释器尝试;)

$ python
Python 2.7.5+ (default, Sep 19 2013, 13:48:49) 
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> from datetime import datetime,date,timedelta
>>> 
>>> now = datetime.now()
>>> 

如果你使用的是脚本,你可以直接用python调用:

$ python mixcloud.py

否则,请确保它以正确的 shebang 行开头:

#!/usr/bin/env python

...然后您可以单独通过名称调用它(假设它被标记为可执行):

$ ./mixcloud.py

【讨论】:

  • 更多解释:当您执行something.py 时,仅将文件命名为something.py 并不会导致它作为Python 运行。所有不是二进制的东西(ELF、Mach-O,任何适合你平台的东西)都使用默认 shell(通常是 /bin/sh something.py)作为解释器运行,除非第一行是像 #!/usr/bin/env python 这样的 shebang 行,其中如果它将按照您指定的内容运行 (/usr/bin/env python something.py)。
  • 还有一件事:所有这些仅适用于 POSIX 和类似 POSIX 的系统——这意味着除了 Windows 之外,几乎所有您会关心的平台。
  • 谢谢。这就是问题所在。
【解决方案2】:

检查您的 #! 行是否在 python 文件的第一行。我收到此错误是因为我将此行放入文件的第二行。

【讨论】:

  • 我收到此错误是因为我的 #! 之前有一个空格
【解决方案3】:

当我尝试使用 docker run 在 docker 上运行我的 python 脚本时出现此错误。 确保在这种情况下您设置的入口点设置正确:

--entrypoint /usr/bin/python

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多