对于这样的项目结构:
/tumblr
/tumblr
/module_foo
__init__.py
submodule_foo.py
/module_bar
__init__.py
submodule_bar.py
__init__.py
bot.py
我正在做类似的事情:
import sys
sys.path.append('C:\\repos\\bot\\tumblr\\tumblr')
from tumblr.bot import Bot
class SubmoduleFoo(Bot):
def __init__(self):
super().__init__()
# ...
# ...
if __name__ == "__main__":
SubmoduleFoo()
bot.py 只定义了一个带有一些初始化的空类:
import sys
sys.path.append('C:\\repos\\bot\\tumblr\\tumblr')
class Bot:
def __init__(self):
self.settings = dict()
# ...
如果我从命令行调用这些脚本,它们会起作用:
python C:\path\to\submodule_foo.py
如果我双击我的 python submodule_foo.py "script"它不起作用。
我认为问题是继承引起的,调用父类init
但由于我只是双击它,所以我不知道如何正确调试它。
我试图包括一个:
with open('codes.txt', 'a') as file:
file.write("It Works \n")
就在 if __name__ == "__main__": 语句之后并且不起作用 :$
我的 PATH 变量(在 Windows 10 中)包括 c:\python34 和 c:\python34\scripts
我还有一个指向 c:\python34
PYHOME env 变量
而且我已经尝试过这个解决方案:Python scripts stopped running on double-click in Windows 但它对我不起作用。
我还尝试通过 python 解释器创建这些类。而且对 tumblr.bot.Bot() 的导入工作正常
我的想法用完了。
最佳答案
由于您的文件输出不起作用,因此可能根本没有启动 python 解释器。在 Windows 资源管理器中右键单击该文件,找到它显示“打开方式”的位置,然后按“更改”按钮,它看起来不正确。
通过在“开始”中键入 cmd 打开 DOS 命令提示符,并尝试在指定和不指定解释器的情况下运行您的脚本。
c:\home>python.exe myscript.py
或
c:\home>myscript.py
如果 #1 有效而 #2 无效,则表示 Windows 未配置为使用正确的解释器打开 *.py 文件。
要在双击启动脚本时查看输出,可以显示如下错误消息:
#!/usr/bin/env python
import sys
try:
# your code here
# your code here
# your code here
except Exception as e:
print("\nTHERE WAS AN ERROR PROCESSING YOUR REQUEST:", e, file=sys.stderr)
input("Press Enter to exit...")
强烈推荐使用 stderr channel ,因为默认情况下 Python 在 latin-1 的 MS 版本中打印到控制台,任何 Unicode 字符都会触发编码异常。 stderr 没有这个限制。
关于Python 脚本不会通过在 Windows 上双击来执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33443915/
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案
我正在使用puppet为ruby程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这
我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search