我用TCP,UDP和pygame做了一个多人Pong游戏.我正在使用的模块是:pygame,os,logging,threading,random,yaml(PyYAML)和socket
使用python2.7从命令行运行游戏时效果很好,但是使用py2app编译的版本给出了一个错误,即:
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
Run Code Online (Sandbox Code Playgroud)
我已经google了一下,关于堆栈溢出的其他问题在我看来似乎没有任何意义.它给我错误的行是:
class Entity(pygame.Surface):
def __init__(self, x, y, w, h, color=(255, 255, 255)):
pygame.Surface.__init__(self, (w, h))
Run Code Online (Sandbox Code Playgroud)
您可能已经理解,它位于此示例的第一行.使用pygame.Surface时有点奇怪.虽然正如我所说,它在我在命令行中运行程序时有效!
我使用的py2app脚本是这样的:
from setuptools import setup
APP = ['src/client.py']
OPTIONS = {'argv_emulation': True, 'includes': ['EXTERNAL LIBRARY'], }
setup(
app=APP,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我的内置http模块有一个非常奇怪的python问题。它成功导入,但是http.client属性不存在?它在python文档中,我的兄弟完美地运行了代码。但是,它对我不起作用,无论是在我的Linux笔记本电脑上还是在Mac上均不起作用!几天来一直遇到这个问题,真的需要解决!
确切的错误消息是:
except (http.client.ResponseNotReady, http.client.CannotSendRequest, http.client.BadStatusLine) as e:
AttributeError: 'module' object has no attribute 'client'
Run Code Online (Sandbox Code Playgroud)
删除此异常时,此文件中仅包含更多异常,因此无论如何我不能简单地删除该异常
因为找不到此问题的根源,所以我开始探索http模块文件夹并找到client.py
在python解释器中输入help(http)时,它会响应以下内容:
PACKAGE CONTENTS
client
cookiejar
cookies
server
FILE
/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/http/__init__.py
Run Code Online (Sandbox Code Playgroud)
好吧,我知道帮助命令信息会自动生成,并且那些软件包可能已被删除或其他。所以我去了http目录,并做了一个“ ls -l”给我:
-rw-r--r-- 1 root wheel 38 6 Apr 21:29 __init__.py
drwxr-xr-x 12 root wheel 408 4 May 21:29 __pycache__
-rw-r--r-- 1 root wheel 44644 6 Apr 21:29 client.py
-rw-r--r-- 1 root wheel 75973 6 Apr 21:29 cookiejar.py
-rw-r--r-- 1 root wheel 20360 6 Apr 21:29 cookies.py
-rw-r--r-- 1 root wheel 44788 6 …Run Code Online (Sandbox Code Playgroud) 我正在使用Rocket State,它传递给HTTP请求.此结构包含一个Mutex<DatastoreInstance>访问SQLite数据库的框架,并使用互斥锁锁定以使读写安全.
pub struct DatastoreInstance {
conn: Connection,
}
Run Code Online (Sandbox Code Playgroud)
当DatastoreInstance结构看起来像这样时,只有一个SQLite连接一切正常,但我还想在这个结构中添加一个事务对象:
pub struct DatastoreInstance {
conn: Connection,
events_transaction: Transaction,
}
Run Code Online (Sandbox Code Playgroud)
这没有编译,因为Transaction对象需要引用一个Connection应该具有它所知道的生命周期的对象.我正在使用的rusqlite中的Connection和Transaction对象定义如下:
pub struct Connection {
db: RefCell<InnerConnection>,
cache: StatementCache,
path: Option<PathBuf>,
}
pub struct Transaction<'conn> {
conn: &'conn Connection,
drop_behavior: DropBehavior,
}
Run Code Online (Sandbox Code Playgroud)
要解决生命周期问题,我必须添加这些生命周期参数才能使其正常工作:
pub struct DatastoreInstance<'a> {
conn: Connection,
events_transaction: Transaction<'a>,
}
Run Code Online (Sandbox Code Playgroud)
这是结果,并且应该根据我对生命周期和互斥体的理解而工作,但是我现在得到编译器错误告诉我:
`std::cell::RefCell<lru_cache::LruCache<std::string::String, rusqlite::raw_statement::RawStatement>>` cannot be shared between threads safely
|
= help: within `rusqlite::Connection`, the trait …Run Code Online (Sandbox Code Playgroud) 所以,我一直在寻找答案,多个人都有相同的错误响应,但我无法看到他们的错误如何修复我的代码.
我昨天开始尝试使用c ++,但我很熟悉Python,但也有C#
我正在制作一本简单的联系簿,仅供学习.我没有完成这个类或任何其他实现,只需先修复它.
确切的错误是
kontaktbok.cpp:9: error: expected unqualified-id before 'public'
Run Code Online (Sandbox Code Playgroud)
代码在这里
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
bool running = true;
public class Contact
{
private:
string firstname = "";
string lastname = "";
string phonenumber = "";
public:
Contact()
{
this.firstname = "Alfred";
}
};
int main()
{
cout << "Welcome to the Contact book!" << endl <<
"Made by X";
while (running)
{
cout << "1. Add contact" << endl
<< "2. List contacts" …Run Code Online (Sandbox Code Playgroud) 所以,我找到了java.util.Calendar,并尝试将它用于我正在研究的android项目.
我完全不明白Calendar.DAY_OF_WEEK如何在星期四返回7?现在当它是八月Calendar.WEEK_OF_YEAR返回4,这根本没有任何意义!
我也尝试了GregorianCalendar,它给出了完全相同的结果.
试图找到有关它们如何计算的任何文档,但我找不到任何东西.似乎有一些非常明显的东西,但我无法找出它是什么!
我写的代码在这里:
// Get if daily or weekly
boolean daily;
daily = getPrefs.getBoolean("checkbox_daily", false);
String day = "0";
if (daily){
switch(GregorianCalendar.DAY_OF_WEEK){
case GregorianCalendar.MONDAY:
Do_stuff();
break;
case GregorianCalendar.TUESDAY:
Do_stuff();
break;
case GregorianCalendar.WEDNESDAY:
Do_stuff();
break;
case GregorianCalendar.THURSDAY:
Do_stuff();
break;
case GregorianCalendar.FRIDAY:
Do_stuff();
break;
}
}
Run Code Online (Sandbox Code Playgroud) 所以我目前正在将一个小型C库导入到一个新的空C++项目中,但它根本无法编译.它可以很好地用C编译它,但它根本不适用于C++.我唯一要做的就是包括标题.
这似乎是一个语法错误,但它可能是其他的.这是编译器唯一唠叨的事情:
error: expected unqualified-id before 'export'
bool (*export)(struct wld_exporter * exporter, struct wld_buffer * buffer, uint32_t type, union wld_object * object);
error: expected ')' before 'export'
Run Code Online (Sandbox Code Playgroud)
因为我认为这是一个语法问题,我只是不知道该怎么做,并尝试愚蠢的事情,如在导出后移动asterix而不是之前希望它可以工作,但它显然没有.
我不知道为什么编译器无法识别它应该是一个函数指针,我在c ++中完成了函数指针c-style之前没有任何问题.
我使用gcc和C++ 11,如果这有任何区别.
c++ ×2
python ×2
c++11 ×1
calendar ×1
date ×1
java ×1
mutex ×1
py2app ×1
python-2.7 ×1
python-3.x ×1
rust ×1
rust-rocket ×1