小编Joh*_*olt的帖子

游戏从源代码运行良好,但不是从py2app运行

我用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)

提前致谢!

python py2app python-2.7

5
推荐指数
1
解决办法
217
查看次数

即使存在模块属性也找不到

我的内置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)

python python-3.x

3
推荐指数
1
解决办法
1817
查看次数

编译器表示,即使数据包含在Mutex中,也无法安全地在线程之间共享数据

我正在使用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中的ConnectionTransaction对象定义如下:

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)

mutex thread-safety rust rust-rocket

3
推荐指数
1
解决办法
905
查看次数

错误:预期的不合格ID

所以,我一直在寻找答案,多个人都有相同的错误响应,但我无法看到他们的错误如何修复我的代码.

我昨天开始尝试使用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)

c++

2
推荐指数
2
解决办法
3万
查看次数

java.util.calendar表现得很奇怪

所以,我找到了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)

java calendar date java.util.calendar

0
推荐指数
1
解决办法
162
查看次数

函数指针声明在C中起作用,但在C++中起作用

所以我目前正在将一个小型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++ function-pointers c++11

0
推荐指数
1
解决办法
69
查看次数