我正在阅读正式的Python教程,它说
有一个特别的模块值得注意: sys,它内置于每个Python解释器中。
但是,如果启动python解释器并键入(例如,sys.path ),就会得到一个NameError: name sys is not defined。
因此,如果我想要访问sys,就需要导入它。
那么,这意味着它是“构建在每个python解释器中的”吗?
Python的gtk模块做了一些奇怪的魔术,以便导入一个名为gdk的模块。任何地方都没有实际的gdk模块。gtk/__init__.py模块的开头如下所示:
# load the required modules:
import gobject as _gobject
ver = getattr(_gobject, 'pygobject_version', ())
if ver < (2, 11, 1):
raise ImportError(
"PyGTK requires PyGObject 2.11.1 or higher, but
罐头上写着什么。
我已经解决了在使用虚拟环境时如何设置sys.prefix的谜团(Python寻找一个pyvenv.cfg文件[])。
但是,我不明白Python是如何找到sys.base_prefix的。
默认情况是/usr/local (在Unix上) []。
然而,在我的Mac电脑上,这些实干家似乎并不有效。
如下面的代码所示,遵循符号链接,在本例中,sys.base_prefix只是实际Python二进制文件之上的目录:
# Following symlinks to determinw where the actual hard link is
➜ tmp ls -l /usr/l
今天,csv23和解耦模块就发生了这种情况。 以下是我的系统信息: ozgurbuldum@Ozgurs-MacBook-Pro ~ % which -a pip
/Users/ozgurbuldum/.pyenv/shims/pip
/Users/ozgurbuldum/opt/anaconda3/bin/pip
ozgurbuldum@Ozgurs-MacBook-Pro ~ % which -a python
python: aliased to python3
/Users/ozgurbuldum/.pyenv/shims/python
/usr/bin/python
/Users
我正在尝试从java运行python脚本,当java中发生变化时,我想将有关它的信息发送到python程序。我不知道最好的解决方案。我可以运行python脚本并向其发送启动信息,但随后问题就开始了。我考虑过通过tcp/ip连接发送数据,但当我尝试这样做时,python脚本中出现了错误:
Caused by: Traceback (most recent call last):
File "pythonScript.py", line 2, in <module>
import socket
ImportError: No module named socket
a
我有两个Python文件:
b.py
def buzz():
foobar = Foobar()
c.py
from b import buzz
class Foobar:
pass
buzz()
运行python c.py会引发:
NameError: name 'Foobar' is not defined
看来有一个基本的Python导入机制,我仍然不明白。我希望,当buzz()被调用时,它可以动态地访问现在包含Foobar的环境。
当然(?),如果我用buzz的定义来替换它的输入,它会起作用:
d.py
def buzz():
foobar
我制作了一个模块,并将其迁移到/root/Downloads/Python-3.5.2/Lib/site-packages。
当我运行此文件夹中的bash命令python3来启动ide并导入模块时,它可以正常工作。但是,如果我在任何其他目录(例如/root/Documents/Python)中运行python3,它会显示
ImportError: No module named 'exampleModule'
我的印象是,Python会自动搜索site-packages中的模块,而不管目录是什么。我怎么才能修复它,让它无论我在哪里都能工作呢?