我正在尝试学习python而我在导入模块时遇到问题.我有一个.pyc文件,我试图导入到名为dfa.pyc的空闲shell中
我把文件放在一个名为xyz的文件夹中.我使用以下方法导航到此文件夹
os.chdir('/Users/xxx/Desktop/xyz')
Run Code Online (Sandbox Code Playgroud)
所以现在,如果我尝试运行命令:
from dfa import *
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ImportError: No module named dfa
Run Code Online (Sandbox Code Playgroud)
如果我运行命令:
os.path.isfile('dfa.pyc')
Run Code Online (Sandbox Code Playgroud)
它返回true.
有人可以解释我如何导入dfa.pyc文件?
谢谢
我们可以编写一段python代码并将其放入已编译的".pyc"文件中并使用它.我想知道在性能方面是否有任何好处,或者它只是一种对代码进行分组的模块化方式.
非常感谢
CPython解释器会自动将Python模块编译为.pyc文件.包含字节码的.pyc文件是二进制格式(封送代码?).是否有GUI(或命令行)工具让我查看字节码?
似乎在OS X 10.8(使用Python 2.7)上,.pyc
即使您设置了环境变量,也会创建文件PYTHONDONTWRITEBYTECODE=1
如何防止这种情况发生,或者我如何说服Python不要在与源文件相同的位置创建这些文件.
我知道当Python脚本在其他python脚本中导入时,会创建一个.pyc脚本.有没有其他方法可以使用linux bash终端创建.pyc文件?
这是我的测试套件.
我在一个临时文件夹中有一个自动生成的Python包.这是所有.py
文件.我想以编程方式将这些文件编译成(a).pyc
和(b).pyo
文件.(一个测试会做.pyc
,另一个测试会做.pyo
.)当然,这应该由主动解释器来完成.我不想导入模块,只需编译.
我怎样才能做到这一点?
刚开始使用Mercurial.哇,很好的应用程序.我将数据库文件移出代码目录,但我想知道这些.pyc
文件.我没有在初始提交中包含它们.有关该.hgignore
文件的文档包含一个要排除的示例*.pyc
,因此我认为我的方向正确.
我想知道当我决定回滚到旧的文件集时会发生什么.我需要删除所有.pyc
文件吗?我在Stack Overflow上看到了一些关于这个问题的问题,包括一位发现旧.pyc
文件被使用的绅士.这个的标准方法是什么?
有没有办法阻止python创建.pyc文件,已经在Python脚本的shebang(或魔法数字)中?
不工作:
#!/usr/bin/env python -B
Run Code Online (Sandbox Code Playgroud) 我有一个.pyc
文件.我需要了解该文件的内容就知道反汇编是如何工作的蟒蛇,即我怎么能产生像输出dis.dis(function)
从.pyc
文件内容.
例如
>>> def sqr(x):
... return x*x
...
>>> import dis
>>> dis.dis(sqr)
2 0 LOAD_FAST 0 (x)
3 LOAD_FAST 0 (x)
6 BINARY_MULTIPLY
7 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)
我需要使用该.pyc
文件获得这样的输出.
这是对/sf/ask/2637887801/的跟进
我发现由于线程库中的Timer对象存在问题,我的程序在编译后无法正常工作.我已将库包含在我的\ Lib\site-packages目录中,并将该目录添加到程序中的路径中.这是我正在使用的测试代码 - 一个简单的计数程序:
import sys
from threading import Timer
sys.path.append('C:\Users\[user]\Documents\Visual Studio 2015\Projects\Testing Timer Compilation issue\Testing Timer Compilation issue')
sys.path.append('C:\Users\[user]\Documents\Visual Studio 2015\Projects\Testing Timer Compilation issue\Testing Timer Compilation issue\Lib')
class Chron():
def __init__(self):
self.t = Timer(2, self.count)
self.t.start()
self.i = 0
def count(self):
print(self.i)
self.i += 1
if self.i <= 15:
self.t = Timer(2, self.count)
self.t.start()
c = Chron()
Run Code Online (Sandbox Code Playgroud)
在Visual Studio中的Interactive Interpreter中完美运行,但是一旦我使用pyc.py编译为exe文件,它就不会运行,只需在~5秒后关闭,不会抛出任何异常.
正如前一个问题中所提到的,我有一个程序,其中包含一个我需要编译的Timer,因为源代码包含敏感凭据.是否有任何必要的技巧使Timer在exe中工作?它只是不兼容吗?
编辑:6天没有答案.不幸的是,互联网上似乎没有任何资源可以解决这个特定问题.这几乎就像我是唯一一个有这个问题的人.这对我来说似乎很奇怪,因为问题似乎与Timer对象本身有关,我无法想象没有其他人试图在其中部署带有Timer的应用程序.任何见解在这一点上都会有所帮助,因为我完全难过.
pyc ×10
python ×10
compilation ×2
python-2.7 ×2
bytecode ×1
disassembly ×1
django ×1
ironpython ×1
macos ×1
mercurial ×1
python-3.x ×1
scripting ×1
shell ×1
terminal ×1
timer ×1