我正在尝试编写一个简单的本地python脚本来进行一些html解析.我安装了beautifulsoup4并使用它导入
from bs4 import BeautifulSoup
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
Traceback (most recent call last):
File "scrape_descriptions.py", line 1, in <module>
from bs4 import BeautifulSoup
ImportError: No module named 'bs4'
Run Code Online (Sandbox Code Playgroud)
我尝试过各种方式安装BS4.首先,我做了
sudo pip install BeautifulSoup4
Run Code Online (Sandbox Code Playgroud)
然后我尝试从网站上下载实际文件并运行
sudo python setup.py install
Run Code Online (Sandbox Code Playgroud)
最后我试了一下
sudo su
easy_install BeautifulSoup4
Run Code Online (Sandbox Code Playgroud)
所有这些操作似乎都已成功完成.但我仍然遇到这个错误.我已经搜索了其他帖子,但几乎所有帖子都只是安装说明,我已经完成了.
打字
pip freeze
Run Code Online (Sandbox Code Playgroud)
显示bs4已安装但正在运行
$ python3 -i
>>> help('modules')
Run Code Online (Sandbox Code Playgroud)
似乎没有列出bs4.
编辑1:运行sudo pip3 install BeautifulSoup给出了这个错误:
Downloading/unpacking BeautifulSoup
Downloading BeautifulSoup-3.2.1.tar.gz
Running setup.py (path:/private/tmp/pip_build_root/BeautifulSoup/setup.py) egg_info for package BeautifulSoup
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/private/tmp/pip_build_root/BeautifulSoup/setup.py", …
Run Code Online (Sandbox Code Playgroud) 我了解公共,私人和受保护的行为.我知道您应该使用它们来遵循面向对象编程的概念,并且我知道如何在使用多个类的程序中实现它们.
我的问题是:为什么我们这样做?为什么我不能直接修改另一个类的全局变量?即使你不应该为什么保护,私人和公共修饰符甚至是必要的?这就好像程序员不相信自己不这样做,即使他们是编写程序的人.
提前致谢.
我正在使用 Tesseract 库的 ac# 包装器(如果我没记错的话,是 3.02)(https://github.com/charlesw/tesseract)。我已经让它运行并给出输出,但该输出本质上是垃圾。通常它什么也不提供,而当它确实提供一些东西时,它通常会变得一团糟。我知道它在理论上是有效的,因为我已经在一些非常完美的图像上尝试过它并且它有效。我想知道是否有人可以帮助我诊断问题并提出一些提高 Tesseract 准确性的方法。我已经将所有图像转换为黑白,分辨率设置为 300x300。我不会以编程方式进行任何直线拉直,但正如您在下面看到的那样,它们非常直。
我尝试翻转一些示例的颜色,认为这样可能会产生更大的对比度(因为大多数文本是白色背景上的黑色,而工作文本是黑色背景上的白色文本)。但:
我怀疑这与“INVOICE”中字母之间的额外间距有关。但必须有某种方法可以用更紧凑的字体获得不错的结果。欢迎任何建议,我是这里的相对菜鸟。
我正在写一个程序,我需要从存储中播放一首歌.我为此设置了一个MediaPlayer(下面的代码片段),但不断得到一个java.io.IOException:准备失败:status = 0x1.一些网站表示可能会发生此错误,因为我尝试阅读的文件不是世界可读的.如果是这样,我怎样才能从程序中更改文件权限,解决此问题或其他解决方案.如果没有,请帮我弄清楚这有什么问题.提前致谢.
MediaPlayer player = new MediaPlayer();
player.reset();
player.setDataSource(selectedFilePath);
player.prepare();
player.start();
Run Code Online (Sandbox Code Playgroud) 非常简单,我正在重新学习C++,而且我正在指点.我理解基本概念,但我遇到了一些麻烦.调用此函数的语法是什么?
void getTime(int& hours, int& minutes, int& seconds) const
{
hours = hr;
minutes = min;
seconds = sec;
}
Run Code Online (Sandbox Code Playgroud)
正如您可能已经猜到的那样,函数的关键是将小时,分钟和秒的时间返回到位于函数调用所在范围内的三个指针.假设已经定义了hr,min和sec .
此外,如果有人想详细说明指针(特别是何时使用&何时使用*),将非常感激.预先感谢.
所以我是LISP的新手,我正在玩几个基本的函数.
(defun suma (&rest L)
(cond
((null L) 0)
(T (+ (CAR L) (EVAL (CONS 'suma (CDR L)))))
))
(defun suma2 (&rest L)
(cond
((null L) 0)
(T (+ (car L) (suma2 (cdr L))))
))
Run Code Online (Sandbox Code Playgroud)
第一个功能正常.第二个函数给出了这个错误:SB-KERNEL :: CONTROL-STACK-EXHAUSTED.
我的问题是:为什么第一个功能正常,第二个功能不是它们基本上做同样的事情?
我正在研究一个问题,我给了一个数字,需要找到该数字中数字的每个可能的排列.例如,如果给我20
,答案是:20
和02
.我知道有n!
可能存在排列,我将数字分开,以便每个数字都是数组中的元素.我的问题是:我如何遍历此数组以生成至少2位数但不超过6的数字的每种可能组合.
我正在用C++编写一个简单的类(学校,而不是代码).我有一点点C++经验,但已经有一段时间了,所以我重新学习我忘记的东西并学习了很多新的语法(我在Java方面有更多的经验).这是代码:
#include <iostream>
#include <string>
using namespace std;
class Project112
{
private:
string romanNumeral;
int decimalForm;
public:
Project112()
{
romanNumeral = "";
decimalForm = 0;
}
int getDecimal()
{
return decimalForm;
}
};
Run Code Online (Sandbox Code Playgroud)
这是司机:
include cstdlib
include <iostream>
using namespace std;
int main()
{
Project112 x;
int value2 = x.getDecimal();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是一个更大的计划的一部分,但我已将其简化为此,因为这是问题所在.每次我尝试运行该程序时,都会出现以下错误:
main.cpp:10: error: 'Project112' was not declared in this scope
main.cpp:10: error: expected `;' before 'x'
main.cpp:14: error: 'x' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这个问题吗?提前致谢.
我正在研究一个需要多维数字的程序.长话短说,我需要将数字与字符串进行比较,所以当转换为字符串时,我需要摆脱double给出的小数位.为此,我使用Math.round
并保存为long
.这适用于相对正常的数字,但数字可以达到999,999.
我使用275393(给定的测试编号,所以我认为它必须对我正在处理的问题是正确的)并且计算器和计算机似乎都没有得到正确的答案.正确答案应该在结果的某处包含123457,但计算器有12346(我认为它只是四舍五入,因为它在此之后停止列出数字)并且计算机有123456(计算机在此点之后停止列出数字).是四舍五入给它的问题(它不应该因为我很确定它只会到十分之一,但谁知道)?或者是别的什么?
我正在编写一个程序,我在其中继承了C++中的另一个类并覆盖了几个方法.因为我只想在这些方法中添加一行,所以我尝试在基类中调用该方法并在其下面添加一行.我收到以下错误.
"Unhandled exception at 0x00FA4456 in Ch.12.exe: 0xC0000005: Access violation reading location 0x67525A64."
Run Code Online (Sandbox Code Playgroud)
这是最接近(据我所知),我可以在java中获得"超级".
该类的简化版本
using namespace std;
#include <iostream>
#include <string>
#include "dateType2.h"
class extDateType : public dateType
{
private:
string monthString;
void updateMonthString()
{
string months[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
monthString = months[getMonth()];
}
public:
void printDateString()
{
string months[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
cout << months[getMonth()];
cout << " …
Run Code Online (Sandbox Code Playgroud) 我敢肯定这是一个愚蠢的问题,但是我在任何地方都找不到答案。我正在尝试在Android中创建一个自定义的View XML元素(使用Xamarin,因此从技术上讲它是C#,尽管我认为这并不重要)。我找到了很多教程,但似乎没人能解释路径的来源。例如,google示例如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res/com.example.customviews">
<com.example.customviews.charting.PieChart
custom:showText="true"
custom:labelPosition="left" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
com.example.customviews.charting来自哪里?我发现的所有示例都没有解释如何创建此路径。我发现有人说这是程序包名称,但是我的程序包名称看起来并不像这样(也许在生成文件时我做错了什么?):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="AndroidDemo.AndroidDemo" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
Run Code Online (Sandbox Code Playgroud)
现在,我已经在布局中得到了这个:
<AndroidDemo.AndroidDemo.DragRectView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/dragRect" />
Run Code Online (Sandbox Code Playgroud)
这将导致Android.View.InflateException和java.lang.ClassNotFoundException。
我确定我的DragRectView(我的班级)路径错误;谁能给我一些指导,以弄清它是什么?