Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 15

0
votes
answers
26 views
+10

PyPI /簡單不提供最新版本的包

0

我上傳a library到PyPI昨晚 - 它目前在版本0.0.3。嘗試使用pip版本0.0.1安裝庫時。已安裝。運行pip install pyroblox --upgrade,點決定0.0.1是最新版本。與卸載然後重新安裝相同。我想這可能是一個緩存的問題,但這樣做一個詳細的安裝時,我看到PIP被選中此網址最新的版本:PyPI /簡單不提供最新版本的包

https://pypi.python.org/simple/pyroblox/

的/簡單的頁面只包含版本0.0.1 - 不是0.0.2或0.0.3。自從我上傳0.0.2版本以來,已經過了15個小時,所以我認爲這不是一個PyPI的問題,只是運行緩慢的cron作業來更新/簡單頁面。

當上傳包到PyPI以使它們在/簡單頁面上更新時,還有什麼額外的東西需要處理嗎?現在我正在運行python setup.py sdist,然後運行twine upload dist/pyRoblox-x-x-x.tar.gz。這似乎更新普通頁面很好,但/簡單卡住0.0.1。我可以直接從源代碼安裝包,但我希望通過點安裝來正確運行,以便分發包。

沙发
0
0

/簡單開始顯示24小時後的最新版本。我猜想它的更新有一個非常長的延遲?

0
votes
answers
39 views
+10

在Jenkins中調試Groovy腳本管道

2

我正在將Jenkins管道開發爲Groovy腳本(腳本管道,而不是聲明式),並且真正很困難。詹金斯始終是非常通用的關於語法/語義錯誤,輸出棧象下面這樣:在Jenkins中調試Groovy腳本管道

groovy.lang.MissingPropertyException: No such property: caughtError for class: groovy.lang.Binding 
at groovy.lang.Binding.getVariable(Binding.java:63) 
at 

所以我要到哪錯誤是完全由我自己,檢查每行代碼行。 有沒有更好的方法來調試它?你們做什麼?

+0

我想出了一個主要問題,就是我在腳本結尾處的「catch」塊。您必須正確處理異常。 –

沙发
0
5

我看到這篇文章,http://notes.asaleh.net/posts/debugging-jenkins-pipeline/ 其中介紹瞭如何調試jenkins管道的groovy腳本。 它清楚地描述瞭如何做到這一點。

+0

謝謝,我會看看! –

0
votes
answers
22 views
+10

角度2翻譯的管道或指令?

0

我正在尋找一個選項來編寫我自己的翻譯,以取代翻譯文本,我想知道什麼會更好地使用管道或指令的性能和所有,因爲它將添加的組件數量很大。角度2翻譯的管道或指令?

那麼使用大量的指令或管道有什麼缺點嗎?

沙发
0
0

使用角度,管道很容易實現,因爲您已經有了我們的翻譯服務。我們現在唯一要做的就是調用服務的翻譯方法。

看看下面的內容question想知道更多關於它的信息。

+0

我不想使用ngx-translate庫,因爲它們使用不純的管道。 – Orange

+0

如果你不使用它,它會有點困難,無論如何pipe是最好的選擇去 – Sajeetharan

0
votes
answers
44 views
+10

函數DB2表函數

0

有人知道如何在DB2中獲得該結果:函數DB2表函數

查詢

Example : 

    SELECT * FROM TABLE(FunctionName('1||2||3',||)) ; 

首先一個是具有值的參數和第二個是分隔符。

結果:我把對查詢

Column 

    1 
    2 
    3 

值是根據參數和分隔符。

正如我上面所說的那樣,行被管斷開。我沒有PL/SQL的龐大背景。

使用DB2 V11.1

+0

你的意思是'SELECT * FROM TABLE(使用functionName(「1 || 2 || 3','||'));' – mao

+0

可能的重複https://stackoverflow.com/questions/18961996/how-to-split-a-string-value-based-on-a-delimiter- in-db2 – mao

沙发
0
1

所以我一直都面臨着這樣的問題,我爲它找到一個解決方案:

CREATE OR REPLACE FUNCTION Test(
Data_1 CLOB(1M), Delimtator VARCHAR(12)) 
RETURNS TABLE (
FieldData varchar(2048)) 
LANGUAGE SQL 
BEGIN 
    DECLARE dInic INTEGER DEFAULT 1 ; 
    DECLARE dFim INTEGER DEFAULT 0 ; 
    DECLARE Rowid1 INTEGER DEFAULT 0; 
    DECLARE Campo VARCHAR(2048); 

    IF Data_1 IS NULL THEN 
     RETURN; 
    END IF; 

    SET dFim=LOCATE(Delimtator,Data_1); 

    WHILE dFim>0 DO 
    SET Campo=SUBSTRING(Data_1,dInic,dFim-dInic); 
     PIPE (Campo); 
     SET dInic=dFim+LENGTH(Delimtator); 
     SET dFim=LOCATE(Delimtator,Data_1,dFim+LENGTH(Delimtator)); 
    END WHILE; 

    SET Campo=SUBSTRING(Data_1, dInic,LENGTH(Data_1)-dInic+1); 
    PIPE (Campo); 
    RETURN; 
[email protected] 
+0

我喜歡你這樣做。你能否評論這些代碼? – danny117

89
votes
answers
24 views
+10

Installing pylibmc on Ubuntu

When running

pip install pylibmc

on Ubuntu, I get the following error:

_pylibmcmodule.h:42:36: fatal error: libmemcached/memcached.h: No such file or directory
up vote 78 down vote accepted favorite
沙发
+780
+50
sudo apt-get install libmemcached-dev zlib1g-dev

CentOS 5的軟件包是libmemcached-devel。 - 馬修2015年4月24日16:38

+80

Zags的答案在Ubuntu 13.10上沒有為我做的伎倆。已經安裝了libmemcached-dev。我還必須這樣做:

sudo apt-get install zlib1g-dev

也許這會幫助其他人。

+30

使用以下命令安裝libmemcached

  sudo apt-get install libmemcached-dev zlib1g-dev   

然後設置環境變量並安裝

  LIBMEMCACHED = / opt / local pip install pylibmc  
     
			
        
0
votes
answers
39 views
+10

發送二進制圖像通過管道在python到C服務器

1

所以我試圖發送一個文件(在這種情況下一個.jpg圖像)二進制從客戶端在python 3到C服務器通過管道和由於某種原因它顯示錯誤,水管壞了,這裏是代碼: 蟒蛇:發送二進制圖像通過管道在python到C服務器

import os,sys,errno,pipes,signal,time  

def Tuberia(): 
    fifo = "/tmp/fifoNombre" 
    print ("conecting to a pipe...",fifo) 
    file = open("/home/luisro/Pictures/64.jpg","r+b") 
    f = open(fifo,'wb') 
    for line in file: 
     print(line) 
     f.write(line) 
    f.close() 
    file.close() 

以及C服務器:

void reciveFile(){ 
    int fn; 
    char * fifoNombre = "/tmp/fifoNombre"; 
    // //opens the pipe for reading 
    mkfifo(fifoNombre, 0666); 
    unsigned char datos[MAX_BUF]; 
    fn = open(fifoNombre, O_RDONLY); 
    read(fn, datos, MAX_BUF); 
    saving(datos,"/home/luisro/Desktop/algo.jpg"); 
    unlink(fifoNombre); 

} 


void saving(unsigned char *data, char* dirDest){ 
    FILE *flujoArchivo = fopen(dirDest, "wb"); 
    if(flujoArchivo == NULL){ 
     printf("Error saving.
"); 
     exit(-1); 
    } 
    int writed_size = fwrite(data, sizeof(unsigned char), MAX_BUF, flujoArchivo); 

    fclose(flujoArchivo); 
} 

所以這些都是功能我不知道,如果是Python客戶端或問題的C服務器,提前致謝

+0

爲/ tmp/fifoNombre不斷填充? – TheAschr

+0

是的服務器創建它 – luisro333

沙发
0
1

二進制文件不是面向「行」,這是你如何試圖在python讀它....下面是顯示如何讀取Python中的二進制文件的鏈接:The-link

此外,您可能要如果它大於MAX_BUF,則在服務器接收二進制文件時更改服務器以執行一些循環。

+0

謝謝大家看看它是否工作 – luisro333

板凳
0
0

,所以我解決這個問題而不進行循環是這樣的:

def Tuberia(): 
print("sending file") 
    fifo = "/tmp/fifoNombre" 
    print ("connecting to pipe...",fifo) 
    try: 
     f = open(fifo,'wb') 
     with open("/home/luisro/Pictures/64.jpg","r+b") as file: 
      line = file.read() 
      f.write(line) 
      print("sending succesfully...") 
    except: 
     print("problem connecting to pipe
") 
     Tuberia() 
    print("closing conexions....")  
    time.sleep(2) 
    file.close() 
    f.close() 

的另一個問題是該文件的權重996.9 KB時,它的發送權重8.3 MB至極是MAX_BUF的在C服務器規模做任何人都知道如何爲任何文件發送正確的大小?

這裏是C服務器:

void reciveFile(){ 
    int fn; 
    char * fifoNombre = "/tmp/fifoNombre"; 
    // //opens the pipe for reading 
    mkfifo(fifoNombre, 0666); 
    unsigned char datos[MAX_BUF]; 
    fn = open(fifoNombre, O_RDONLY); 
    read(fn, datos, MAX_BUF); 
    saving(datos,"/home/luisro/Desktop/algo.jpg"); 
    unlink(fifoNombre); 

} 


void saving(unsigned char *data, char* dirDest){ 
    FILE *flujoArchivo = fopen(dirDest, "wb"); 
    if(flujoArchivo == NULL){ 
     printf("Error saving.
"); 
     exit(-1); 
    } 
    int writed_size = fwrite(data, sizeof(unsigned char), MAX_BUF, flujoArchivo); 

    fclose(flujoArchivo); 
} 
0
votes
answers
55 views
+10

「OSError:mysql_config找不到」當試圖「點安裝mysqlclient」 - Django

-1

我是相對較新的Django和一般的Web開發。「OSError:mysql_config找不到」當試圖「點安裝mysqlclient」 - Django

我想

pip install mysqlclient 

在我

virtualenv -p python3 

到Django的2.0掛鉤到MySQL。不過,我得到這個錯誤:

Collecting mysqlclient 
Using cached mysqlclient-1.3.12.tar.gz 
Complete output from command python setup.py egg_info: 
/bin/sh: mysql_config: command not found 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup.py", line 17, in <module> 
    metadata, options = get_config() 
    File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup_posix.py", line 44, in get_config 
    libs = mysql_config("libs_r") 
    File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup_posix.py", line 26, in mysql_config 
    raise EnvironmentError("%s not found" % (mysql_config.path,)) 
OSError: mysql_config not found 

---------------------------------------- 
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/ 

我已經環顧四周,尋找答案了幾個小時,是的,我已經簽出thisthis,但似乎沒有奏效。

任何幫助將不勝感激!

+0

您已經鏈接到其他的問題,但你還沒說你是哪個操作系統上,或發生了什麼當你運行建議的命令。 – Alasdair

+0

@Alasdair我正在運行MacOS High Sierra(版本10.13.1)。當我運行:'sudo apt-get install python-dev python3-dev'我得到:'sudo:apt-get:command not found'例如 –

+0

'apt-get'是一些軟件包管理器和Debian。在MacOS上運行這些命令沒有任何意義。 – Alasdair

沙发
0
1

您應該克隆的mysql回購開始:

git clone https://github.com/PyMySQL/mysqlclient-python 

那麼你將獲得mysql-connector-c。您可以通過執行獲得它:

brew install mysql-connector-c 

在文本編輯器,然後打開/usr/local/bin/mysql_config

從Github上issue

有在mysql_config線,如下列:

# Create options 
libs="-L$pkglibdir" 
libs="$libs -l " 

它應該是:

#Create options 
libs="-L$pkglibdir" 
libs="$libs -lmysqlclient -lssl -lcrypto" 

保存該文件,並在那裏換回來的目錄,你下載回購。現在打開site.cfg文件。 取消註釋(刪除#)

#mysql_config = /usr/local/bin/mysql_config 

保存的是並運行:

python3 setup.py install 
+0

感謝您的支持。當我運行:'brew install mysql-connector-c'時,出現錯誤:'-bash:brew:command not found' –

+0

install [brew](https:// brew。sh) –

+0

您好Pranjal,好,我已經下載了Homebrew,成功運行'brew install mysql-connector-c',在我的文本編輯器中成功打開'/ usr/local/bin/mysql_config',但現在我不確定編輯文件到:libs =「 - L $ pkglibdir」 libs =「$ libs -lmysqlclient -lssl -lcrypto」任何幫助將不勝感激 –

0
votes
answers
25 views
+10

ForEach-Object是否對管道中的單個對象或對象集合進行操作?

2

我很難理解PowerShell管道是如何工作的,我意識到很多問題都是由於ForEach-Object造成的。在我用過的其他語言中,foreach對集合進行操作,並依次遍歷集合中的每個元素。我假設ForEach-Object在PowerShell管道中使用時,會執行相同的操作。但是,我讀到的關於管道的所有信息都表明,集合中的每個元素分別通過管道傳遞,並且下游的cmdlet被重複調用,分別在每個元素上運行,而不是整個集合。ForEach-Object是否對管道中的單個對象或對象集合進行操作?

因此,ForEach-Object是對集合中的單個元素進行操作,而不是對集合進行整體操作?用不同的方式來看,管道操作員是否將整個集合傳遞給ForEach-Object,然後對其進行迭代,或者管道對象是否迭代集合並將每個元素單獨傳遞給ForEach-Object

沙发
0
4

ForEach-Object cmdlet的 - 不像foreach聲明 - 本身執行沒有枚舉

相反,它對通過管道傳遞的每個項目進行操作(在接收第一個項目之前以及在接收到最後一個項目之後,還可以選擇執行代碼)。

因此,可以說是很差命名,因爲它是管道提供枚舉(默認),並且ForEach-Object只是調用對於接收到的每個項的腳本塊。

下面的例子說明這一點:

# Let the pipeline enumerate the elements of an array: 
> 1, 2 | ForEach-Object { "item: [$_]; count: $($_.Count)" } 
item: [1]; count: 1 
item: [2]; count: 1 

# Send the array *as a whole* through the pipeline (PSv4+) 
> Write-Output -NoEnumerate 1, 2 | ForEach-Object { "item: [$_]; count: $($_.Count)" } 
item: [1 2]; count: 2 

注意腳本/功能/ cmdlet的可選擇他們寫入到輸出流(管道)的集合是否應該列舉或發送作爲一個整體(作爲一個單一的對象)。

在PowerShell代碼(腳本或功能,無論是先進的(小命令狀)與否,枚舉是默認的,但你可以Write-Output -NoEnumerate退出;在-NoEnumerate開關是PSv4介紹,在此之前,你不得不使用$PSCmdlet.WriteObject(),這是僅適用於先進腳本/功能。

還要注意,表達嵌入的命令通過在(...)力枚舉包圍它

# Send array as a whole. 
> Write-Output -NoEnumerate 1, 2 | Measure-Object 

Count: 1 
... 

# Converting the Write-Output -NoEnumerate command to an expression 
# by enclosing it in in (...) forces enumeration 
> (Write-Output -NoEnumerate 1, 2) | Measure-Object 

Count: 2 
... 
板凳
0
1

ForEach-Object迭代集合中的每個項目。當它完成對當前項目執行的腳本塊時,它會沿管道發送到下一個可以立即開始處理的命令(而ForEach-Object正在處理下一個項目,如果有的話)。

您可以在下面的例子中看到這些內容起作用:

Get-Process | ForEach-Object { Start-Sleep 1; $_ } | Format-Table 

Get-Process cmdlet獲取進程的列表,並立即發送到每一個ForEach-Object在同一時間。 ForEach-Object正在等待1秒,然後輸出當前的管線元素$_。這被Format-Table收到,它將它作爲表格輸出。您可以看到,它不會等到所有進程都處理完才輸出到屏幕。

地板
0
2

答案是......兩者都有。

支持流水線操作的PowerShell函數(高級函數)流程每個項目單獨通過流水線。它還可以定義一個beginend塊,它將在流水線階段只執行一次。換句話說,基本的結構是這樣的:

function Do-Stuff { 
    begin { 
     write-output "This will be done once, at the beginning" 
    } 
    process { 
     Write-output "This will be done for each item" 
    } 
    end { 
     Write-output "This will be done once, at the end" 
    } 
} 

1..3 | foreach-Object {Do-Stuff $_}的輸出將是:

This will be done once, at the beginning 
This will be done for each item 
This will be done for each item 
This will be done for each item 
This will be done once, at the end 

由於Do-Stuff被寫入到輸出流,如果這之後存在額外的流水線級Foreach-Object,每個對象輸出將依次傳遞到下一個階段。如果沒有其他階段或其他任何東西來捕獲輸出,輸出流將被寫入控制檯。

例如:

$verbosepreference = "continue"; 
[int]1..3|foreach-object {write-output $_; write-verbose ($_*-1)}|foreach-object {$_*$_;write-verbose $_} 

給出以下輸出:

1 
VERBOSE: 1 
VERBOSE: -1 
4 
VERBOSE: 2 
VERBOSE: -2 
9 
VERBOSE: 3 
VERBOSE: -3 

-X輸出到最後的冗長流(每個項目),因爲輸出被傳遞到下一階段在之前的管道和foreach-object腳本塊中的下一個語句被執行。

+1

快速撥出:'[INT] 1..3'相同'([INT] 1).. 3',這是因爲剛'1..3'相同,假設範圍運算符表達式的結果是_always_ a(帶有[[int]'元素的'[System.Object []]')數組。不管怎麼說,像'1'和'3'這樣的數字文字都是'[int]'-type,但即使它們不是,PowerShell也會簡單地強制它們;例如「1」,「3」將產生相同的結果。 – mklement0

0
votes
answers
30 views
+10

管道消費者/生產者:誰應該是消費者/生產者的父/子後叉

1

首先,對不起,如果使用不好的英語。管道消費者/生產者:誰應該是消費者/生產者的父/子後叉

在我的筆記中,我寫過這個子進程通常是製作者,但我不明白爲什麼。 在fork()調用之後,消費者和生產者是誰? 問題是:如果子進程是生產者,他會在父進程完成之前完成,這意味着子進程成爲殭屍進程。

關於這個問題,我試圖瞭解小素描:
enter image description here

沙发
0
0

沒關係。這兩者中的任何一個都可以是生產者或消費者,這取決於您想要解決的偏好或任務。

誰先結束通常是不相關的,因爲生產者和消費者都會在管道的另一端關閉時收到通知。

默認情況下,通知將通過信號SIGPIPE發送,從而終止您的過程。如果您選擇忽略SIGPIPE,則功能readwrite將以EPIPE失敗。

但它是父母將負責收穫。

您可以在man 7 pipe瞭解更多:https://linux.die.net/man/7/pipe

0
votes
answers
27 views
+10

Scrapy店返回變量項主要腳本

1

使用我很新的Scrapy,想嘗試以下操作: 從網頁中提取一些值,將其存儲在一個變量,在我的主要腳本中使用它。 所以我也跟着他們的教程,並改變了代碼爲我的目的:Scrapy店返回變量項主要腳本

import scrapy 
from scrapy.crawler import CrawlerProcess 


class QuotesSpider(scrapy.Spider): 
    name = "quotes" 
    start_urls = [ 
     'http://quotes.toscrape.com/page/1/' 
    ] 

    custom_settings = { 
     'LOG_ENABLED': 'False', 
    } 

    def parse(self, response): 
     global title # This would work, but there should be a better way 
     title = response.css('title::text').extract_first() 

process = CrawlerProcess({ 
    'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)' 
}) 

process.crawl(QuotesSpider) 
process.start() # the script will block here until the crawling is finished 

print(title) # Verify if it works and do some other actions later on... 

這將工作至今,但我敢肯定它不是一個良好的作風,甚至有一些不良的副作用,如果我定義標題變量爲全局。 如果我跳過那一行,那麼我會得到「未定義的變量」錯誤當然是:/ 因此,我正在尋找一種方法來返回變量並在我的主腳本中使用它。

我已閱讀關於物品管道,但我無法使其工作。

任何幫助/想法都非常感謝:) 在此先感謝!

+1

更好地利用'global' - 它會更容易。管道不會幫助你。 – furas

沙发
0
1

使用global因爲你知道是不是一個很好的風格,特別是當你需要擴展需求。

我的建議是標題存儲到文件或目錄,並在主過程中使用它,或者如果你想處理其他腳本的標題,然後只需打開文件,並在你的腳本

閱讀題(注:請忽略壓痕問題)

spider.py

import scrapy 
from scrapy.crawler import CrawlerProcess 

namefile = 'namefile.txt' 
current_title_session = []#title stored in current session 
file_append = open(namefile,'a',encoding = 'utf-8') 

try: 
    title_in_file = open(namefile,'r').readlines() 
except: 
    title_in_file = open(namefile,'w') 

class QuotesSpider(scrapy.Spider): 
    name = "quotes" 
    start_urls = [ 
     'http://quotes.toscrape.com/page/1/' 
    ] 

    custom_settings = { 
     'LOG_ENABLED': 'False', 
    } 

    def parse(self, response): 
     title = response.css('title::text').extract_first() 
     if title +'
' not in title_in_file and title not in current_title_session: 
      file_append.write(title+'
') 
      current_title_session.append(title) 
if __name__=='__main__': 
    process = CrawlerProcess({ 
     'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)' 
    }) 

    process.crawl(QuotesSpider) 
    process.start() # the script will block here until the crawling is finished 
+0

謝謝,這解決與全球語句的問題,雖然我不知道如果是優雅創建另一個文件來處理它。反正 - 這對我來說工作得很好:-) – MaGi

板凳
0
2

製作一個變量global應該爲你所需要的工作,但正如你所說的那樣,它不是很好的風格。

我真的建議使用不同的服務進程之間的通信,像Redis,所以你不會有你的蜘蛛和任何其他過程之間的衝突。

設置和使用非常簡單,文檔有一個very simple example

實例化於主過程中的蜘蛛,並再次內部的redis的連接(思考它們作爲單獨的進程)。蜘蛛設置變量和主要過程讀取(或get)的信息。

+0

謝謝,在短期內,我會去furas'和AndyWangs回答,但如果我的時候,我會讀入Redis的:) – MaGi