我正在运行Python 2.5.
这是我的文件夹树:
ptdraft/
nib.py
simulations/
life/
life.py
Run Code Online (Sandbox Code Playgroud)
(我也在__init__.py
每个文件夹中,为了便于阅读,这里省略了)
如何nib
从模块内导入life
模块?我希望有可能不用修补sys.path.
注意:正在运行的主模块位于该ptdraft
文件夹中.
这似乎是一个新手问题,但事实并非如此.一些常见的方法并不适用于所有情况:
这意味着使用path = os.path.abspath(os.path.dirname(sys.argv[0]))
,但如果您从另一个目录中的另一个Python脚本运行,这不起作用,这可能发生在现实生活中.
这意味着使用path = os.path.abspath(os.path.dirname(__file__))
,但我发现这不起作用:
py2exe
没有__file__
属性,但有一个解决方法execute()
没有__file__
属性NameError: global name '__file__' is not defined
回答不完整的相关问题:
我正在寻找一个通用的解决方案,一个适用于所有上述用例的解决方案.
这是测试用例的结果:
a.py: __file__= a.py
a.py: os.getcwd()= C:\zzz
b.py: sys.argv[0]= a.py
b.py: __file__= a.py
b.py: os.getcwd()= C:\zzz
Run Code Online (Sandbox Code Playgroud)
#! /usr/bin/env python
import os, sys
print "a.py: sys.argv[0]=", sys.argv[0]
print "a.py: __file__=", __file__
print …
Run Code Online (Sandbox Code Playgroud) 我已经找到了答案,但相关的解决方案似乎'print'
与翻译有关.
我想知道是否有可能从IDLE打印(物理上在纸上)彩色蟒蛇代码?
我已经去过:File > Print Window
在IDLE中它似乎只打印出黑白版本而没有提示是否打印颜色等.
编辑:
看起来这可能不可用所以选项是将代码复制到像SciTE这样的文本编辑器并从那里打印 - 就像默认的IDLE语法突出显示一样.
我是pygame的新手,想要编写一些代码,只需每10秒将图像旋转90度.我的代码看起来像这样:
import pygame
import time
from pygame.locals import *
pygame.init()
display_surf = pygame.display.set_mode((1200, 1200))
image_surf = pygame.image.load("/home/tempuser/Pictures/desktop.png").convert()
imagerect = image_surf.get_rect()
display_surf.blit(image_surf,(640, 480))
pygame.display.flip()
start = time.time()
new = time.time()
while True:
end = time.time()
if end - start > 30:
break
elif end - new > 10:
print "rotating"
new = time.time()
pygame.transform.rotate(image_surf,90)
pygame.display.flip()
Run Code Online (Sandbox Code Playgroud)
此代码不起作用,即图像不旋转,尽管每10秒钟在终端中打印"旋转".有人能告诉我我做错了什么吗?
我有一些编辑图像文件的 Python 代码,并且想知道如何将
图像数据添加到操作系统剪贴板并从那里获取它。
当在 Python 中搜索跨平台解决方案来替换或获取剪贴板文本
时,
有许多简单的答案可以实现(例如,使用内置的 Tkinter 模块和一些代码)。
然而,这些方法只能使用纯文本,而不能使用图像等其他剪贴板数据。
我的 Python 版本在 Windows 上是 3.x,但答案需要是跨平台的
(在不同操作系统上工作),并且还应该支持其他 Python 版本,如 2.x。
我认为它应该只使用内置的Python模块,并且代码不应该太复杂(或者对其作用进行解释)。它可以是 Python 模块,因为这些文件可以包含在与可移植程序代码相同的文件夹中以避免安装。
还有一些其他相关问题可能适用于图像,但它们仅支持单个操作系统。最好的是在Python3中将图像复制到剪贴板和使用PIL和win32clipboard在python中将图像写入Windows剪贴板?。
那里描述的方法(仅适用于 Windows)似乎使用以下步骤:
from cStringIO import StringIO
使用,但对于 Python 3,使用io.BytesIO
.convert("RGB")
包含它的变量。bytes
对象),对不起我的愚蠢问题,但是......我想我有这些课程:
class A():
msg = 'hehehe'
class B(A):
msg = 'hohoho'
class C(B):
pass
Run Code Online (Sandbox Code Playgroud)
以及B或C的实例.如何通过此实例从父类的对象中获取变量'msg'?我试过这个:
foo = B()
print super(foo.__class__).msg
Run Code Online (Sandbox Code Playgroud)
但得到消息:"TypeError:super()参数1必须是类型,而不是classobj".
我想知道有没有人知道如何隐藏 pygame 任务栏?
我的 pygame 程序真的需要这个!
谢谢!
当我使用math.cos()和math.sin()函数时,我的python解释器表现得很时髦.例如,如果我在计算器上执行此操作:
cos(35)*15+9 = 21.28728066
sin(35)*15+9 = 17.60364655
Run Code Online (Sandbox Code Playgroud)
但是当我在python上执行此操作时(3.2和2.7)
>>> import math
>>> math.cos(35)*15+9
-4.5553830763726015
>>> import math
>>> math.sin(35)*15+9
2.577259957557734
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
编辑:为了以防万一,你如何将Python中的Radian更改为度?
我制作了一个简单的可缩放矢量图形图像(使用 Inkscape 工具 v0.91)。编辑器显示一切正常,但是当我在 Google Chrome 51 中打开文件时,它没有按应有的方式显示,定位错误(某些文本后增加了间隙)。我创建了一个更简单的示例版本,如下所示,其中删除了左侧的嵌入图像,并在原始文本中添加了一行,其中左侧的水平文本应结束。
原图(在编辑器中查看):
在Google Chrome 51浏览器中查看的图像:
我不明白为什么会发生这种情况,因为浏览器应该以与图像描述相同的字体大小和位置绘制图像中的文本,如果缩放发生变化则缩放它们。查看开发人员工具中的元素查看器可以确认文本没有较小的字体大小属性,并且两个查看器都处于相同的缩放级别。编辑器中显示的图像被保存到文件中,并且在被浏览器使用之前没有被修改,所以这肯定是浏览器的问题。即使没有人能找到这个问题的原因,我仍然想要一个解决方案。
这是一个示例图像,用于重现问题并进行测试(我之前忘记了这一点,建议这样做)。SVG 图像主机服务器似乎很少见,因此我将其添加为代码片段,但可以将其复制回具有.svg
扩展名的文件中,以便在浏览器中正常查看。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="135.972"
height="40"
viewBox="0 0 135.97202 39.999998"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="test.svg"
inkscape:export-filename="C:\blah\logo.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4">
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4688"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Send">
<path
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
style="fill:#a5a5a5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
id="path4690"
inkscape:connector-curvature="0" />
</marker> …
Run Code Online (Sandbox Code Playgroud)python ×8
directory ×2
path ×2
pygame ×2
python-2.7 ×2
browser ×1
clipboard ×1
html ×1
math ×1
module ×1
printing ×1
python-3.x ×1
python-idle ×1
svg ×1
taskbar ×1
titlebar ×1
trigonometry ×1