标签: python-module

导入错误:没有使用 Python3 的名为 mysql.connector 的模块?

尝试在Python 3.2.3上导入python-mysql.connector并收到一个奇怪的堆栈。我怀疑我的 ubuntu 12.04 安装配置不正确。

    vfi@ubuntu:/usr/share/pyshared$ python3
    Python 3.2.3(默认,2013 年 9 月 25 日,18:22:43) 
    [GCC 4.6.3] 在 linux2 上
    输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。
    >>> 导入 mysql.connector
    回溯(最近一次调用最后一次):
      文件“”,第 1 行,在 
    导入错误:没有名为 mysql.connector 的模块
    sys.excepthook 中的错误:
    回溯(最近一次调用最后一次):
      文件“/usr/share/pyshared/apport_python_hook.py”,第 66 行,在 apport_excepthook
        从 apport.fileutils 导入可能_打包,get_recent_crashes
      文件“apport/__init__.py”,第 1 行,在 
        从 appport.report 导入报告
      文件“apport/report.py”,第 20 行,在 
        导入 appport.fileutils
      文件“apport/fileutils.py”,第 22 行,在 
        从 apport.packaging_impl 导入 impl 作为包装
      文件“apport/packaging_impl.py”,第 20 行,在 
        导入 apt
      文件“apt/__init__.py”,第 24 行,在 
        从 apt.package 导入包
      文件“apt/package.py”,第 1051 行
        返回 file_list.read().decode("utf-8").split(u"\n")
                                                          ^ …

mysql python-module python-3.x

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

模块化 peee

假设我有几个简单的模型位于food.py

import peewee as pw

db = pw.SqliteDatabase('food.db')

class BaseModel(pw.Model):
    class Meta:
        database = db

class Taco(BaseModel):
    has_cheese = pw.BooleanField()

class Spaghetti(BaseModel):
    has_meatballs = pw.BooleanField()

db.connect()

# populate with some data if table doesn't exist
from random import random
if not Taco.table_exists():
    db.create_table(Taco)
    for _ in range(10):
        Taco.create( has_cheese = (random() < 0.5) )
    db.commit()
if not Spaghetti.table_exists():
    db.create_table(Spaghetti)
    for _ in range(10):
        Spaghetti.create( has_meatballs = (random() < 0.5) )
    db.commit()
Run Code Online (Sandbox Code Playgroud)

后来,我有了food.pyfood.db。但是假设Taco和 …

python python-module peewee

4
推荐指数
1
解决办法
1876
查看次数

如何在Python中获取导入模块(包括默认)的文件名?

一些上下文:我正在尝试创建一个模块,该模块可以安全地将其自身和所有其他所需文件复制到另一个位置。

假设我有两个模块。

a.py:

import b
import os
import tkinter

print(str(__file__))
print(str(b.getfile()))
Run Code Online (Sandbox Code Playgroud)

b.py:

def getfile:
    return __file__
Run Code Online (Sandbox Code Playgroud)

当 a.py 将输出时

C:/path/to/code/a.py
C:\path\to\code\b.py
Run Code Online (Sandbox Code Playgroud)

问题:如果有的话,我如何获取不同导入模块(如“os.py”)或任何没有此getfile()功能的模块的路径?

python python-module

4
推荐指数
1
解决办法
3470
查看次数

通过 Python 在 Mac 上使用蓝牙

我几乎搜索了整个网络(打个比方来说),试图找到一种在 Mac 上通过 Python 使用蓝牙的方法。PyBluez 不兼容,Lightblue 没有得到维护(无论如何尝试),安装了 PyObC 框架(包括蓝牙框架),并在我的 MacOS 10.10.5 的 2.7.6 和 3.6.1 环境中进行了尝试。

我经常遇到类似以下的错误:

    Traceback (most recent call last):
  File "/Users/***/PycharmProjects/Bluey/main.py", line 1, in <module>
    import bluetooth
  File "build/bdist.macosx-10.10-intel/egg/bluetooth/__init__.py", line 47, in <module>
  File "build/bdist.macosx-10.10-intel/egg/bluetooth/osx.py", line 1, in <module>
  File "build/bdist.macosx-10.10-intel/egg/lightblue/__init__.py", line 160, in <module>
  File "build/bdist.macosx-10.10-intel/egg/lightblue/_lightblue.py", line 31, in <module>
  File "build/bdist.macosx-10.10-intel/egg/lightblue/_macutil.py", line 169, in <module>
objc.BadPrototypeError: Objective-C expects 1 arguments, Python argument has 2 arguments for <unbound selector sleep of BBCocoaSleeper at 0x103cdc030>

Process finished …
Run Code Online (Sandbox Code Playgroud)

python macos bluetooth python-module

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

使用pm2时python模块导入失败

我尝试在我的 Ubuntu 服务器上运行一个 python3 脚本,通知有关 twitter 帖子的信息。在命令行中执行此操作工作正常,但是当我在关闭控制台后使用 pm2 使脚本保持在线时,我收到此错误:

Traceback (most recent call last):
File "/root/projects/Twitterbot/main.py", line 1, in <module>
from tweepy.streaming import StreamListener
ImportError: No module named tweepy.streaming
Run Code Online (Sandbox Code Playgroud)

当我将解释器从没有发生任何事情切换时pythonpython3它不会崩溃。它需要一些内存,但它似乎没有做任何事情。

有人知道可能是什么问题吗?另一个 Python 脚本(导入了很多东西)运行良好,没有任何问题。

我已经使用 pip 重新安装了 tweepy 但没有任何变化

python python-module pm2

4
推荐指数
1
解决办法
2278
查看次数

Python 中“导入为”的用例

我想知道我们是否可以使用“ import as”来创建相对紧凑或可读的代码。我知道它基于PEP 的常见用例,例如避免名称冲突。

情况如下(出于演示目的,保持非常简单)。假设我有一个模块名称 process_words.py。

process_words.py:

def word_to_lower(word):
    return word.lower
Run Code Online (Sandbox Code Playgroud)

process_article.py(让主脚本):

import process_words

word = "HELLO"
word_lower = process_words.word_to_lower(word)
print(word_lower)
Run Code Online (Sandbox Code Playgroud)

现在做这样的事情是坏还是好?:

import process_words as pw

word = "HELLO"
word_lower = pw.word_to_lower(word)
print(word_lower)
Run Code Online (Sandbox Code Playgroud)

这是一个非常简单的例子。我有几个模块,每个模块都有几个功能。导入每个函数from module import something并不是一种选择。对我来说,感觉如果我将 import as 与某些快捷方式名称一起使用,它将提高代码的可读性。有什么想法吗?

注意:我在这里指的是自定义模块。

python python-module pep8 python-import python-3.x

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

python 中的 requests.get 给出连接超时错误

语言版本:Python 3.6.3
IDE 版本:PyCharm 2017.2.3

我试图解析一个天气网站来打印某个地方的天气。当我学习Python时,之前我使用过urllib.request.urlopen(url).read()并且它有效。现在,我正在修改BeautifulSoup4requests模块的代码。下面是我的代码:

from bs4 import *
import requests
url = "https://www.accuweather.com/en/in/dhenkanal/189844/weather-forecast/189844"
data = requests.get(url)
soup = BeautifulSoup(data.text, "html.parser")
print(soup.find('div', {'class': 'info'}))
Run Code Online (Sandbox Code Playgroud)

但每次我尝试运行代码时都会出现以下错误:

Traceback (most recent call last):
File "C:\Users\Nrusingh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen
chunked=chunked)
File "C:\Users\Nrusingh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 387, in _make_request
six.raise_from(e, None)
File "", line 2, in raise_from
File "C:\Users\Nrusingh\AppData\Local\Programs\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 383, in _make_request
httplib_response = conn.getresponse()
File "C:\Users\Nrusingh\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 1331, in getresponse
response.begin()
File "C:\Users\Nrusingh\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 297, in begin …
Run Code Online (Sandbox Code Playgroud)

python python-module python-requests python-3.6

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

如何使用windows为linux下载pip模块

我试图在我的 Windows 机器上下载一些模块,通过 FTP 将它们传输到离线 Linux 服务器,其中安装了 Python 3 和 pip。然后使用 pip 在那里安装模块。

pip download --platform linux_x86_64 --only-binary=:all: --no-binary=:none:  pandas
Run Code Online (Sandbox Code Playgroud)

给出错误:

  Could not find a version that satisfies the requirement pandas (from versions: )
No matching distribution found for pandas
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令下载,但它是 Windows 版本

pip download pandas
Run Code Online (Sandbox Code Playgroud)

python pip python-module python-3.x

4
推荐指数
2
解决办法
3951
查看次数

pip安装的两个模块同名,如何选择加载哪一个?

我正在编写一个依赖于特定模块的python程序rtmidi, . 事实是,PyPI 中至少有两个不同的包有一个具有该名称的模块:rtmidipython-rtmidi。它们提供几乎相同的功能,但具有不同的语法。

当仅安装“正确”的软件包时,一切正常。但是,如果安装了这两个软件包,则使用import rtmidi会加载“错误”的模块,并且我的程序会崩溃。让它再次工作的唯一方法是卸载这两个软件包,然后重新安装正确的软件包。当然,由于用户可能依赖其他模块来执行其他程序,因此我不能指望他们这样做。

尝试识别模块会rtmidi.__name__给出与两个包相同的结果。

所以我的问题是,我该如何解决这个名称冲突问题?有没有最佳实践方法来处理这个问题?

python pip python-module pypi

4
推荐指数
1
解决办法
2372
查看次数

当本地模块中的代码发生更改时,我是否总是需要在 Jupyter Lab 中重新启动内核?

当我使用 Jupyter Lab 处理笔记本时,我经常将代码放入本地文件夹中,以便可以在其他笔记本中重用该代码。我通常通过执行以下操作来引用该本地模块。

\n
import os\nimport sys\n\nsys.path.insert(0, os.path.abspath('.'))\n
Run Code Online (Sandbox Code Playgroud)\n

因此,如果我发现错误或需要增强代码并修改文件*.py,我无法通过简单地重新运行单元来加载新代码。我必须重新启动新内核才能获得新的更改。这个开发周期非常糟糕,尤其是当笔记本电脑的某些部分运行起来计算成本很高时。

\n

有没有关于如何与 Juypter Lab 笔记本一起更有效地编码和修改模块代码的提示?

\n

我的代码结构如下所示。

\n
\ntemp/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 lib\n\xe2\x94\x82\xc2\xa0\xc2\xa0\xe2\x94\x9c\xe2\x94 \x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 杂项.py\n \xe2\x94\x82\xc2\xa0\xc2\xa0\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 utils.py\n\xe2\x94\x94\xe2\x94\x80\ xe2\x94\x80 笔记本.ipynb\n
\n

misc.py以下代码。

\n
def say_hi(name):\n    print(f'hi {name}')\n
Run Code Online (Sandbox Code Playgroud)\n

utils.py以下代码。

\n
def say_bye(name):\n    print(f'bye bye {name}')\n
Run Code Online (Sandbox Code Playgroud)\n

然后,我在单元格中导入一个函数,如下所示。

\n
from lib.utils import say_bye\n\nsay_bye('john')\n
Run Code Online (Sandbox Code Playgroud)\n

现在假设我改变了say_bye(),如何重新加载模块?

\n

python python-module jupyter-notebook

4
推荐指数
1
解决办法
7144
查看次数